MySQL高级学习笔记

1、MySQL架构组成

1.1 高级MySQL介绍

什么是DBA?

  • 数据库管理员,英文是Database Administrator,简称DBA;

百度百科介绍
数据库管理员(简称DBA),是从事管理和维护数据库管理系统(DBMS)的工作人员的统称,属于运维工程师的一个分支,主要负责业务数据库从设计、测试到部署交付的全生命周期管理。

DBA的核心目标是保证数据库管理系统的稳定性、安全性、完整性和高性能。

在国外,也有公司把DBA称作数据库工程师(Database Engineer),两者的工作内容基本相同,都是保证数据库服务7*24小时的稳定高效运转,但是需要区分一下DBA和数据库开发工程师
1、数据库开发工程师的主要职责是设计和开发数据库管理系统和数据库应用软件系统,侧重于软件研发;
2、DBA的主要职责是运维和管理数据库管理系统,侧重于运维管理;

一个高级DBA的职责:

  • 负责MySQL的容量规划,架构设计及安装、部署;
  • 负责MySQL的日常管理,监控和维护,并对MySQL进行持续性能优化;
  • 负责MySQL开发支持,参与数据架构规划设计,以及相关业务的数据建模、设计评审、SQL代码审核优化;

中级Java开发工程师对数据库知识的掌握程度

  • 熟练操作主流数据库,能够通过代码(框架)完成日常的数据库操作;
  • 熟练使用SQL,熟悉SQL优化,熟悉存储过程、视图等创建及使用;
  • 了解MySQL的整体体系结构,了解MySQL事务、存储引擎的特点;
  • 了解MySQL索引优化,了解MySQL相关锁机制;

我们作为Java开发工程师,关注的应该是跟开发相关的数据库知识,了解这些高级的知识,目的是让我们编写出更加高效的应用程序;

专业的数据库维护、服务器优化、性能参数调优等等数据库相关的运维工作还是要交给DBA去做的。



1.2 MySQL逻辑架构

学习MySQL就好比盖房子,如果想把房子盖的特别高,地基一定要稳,基础一定要牢固。学习MySQL数据库前要先了解它的体系结构,这是学好MySQL数据库的前提。

1.2.1 MySQL架构体系介绍

MySQL由链接池、SQL接口、解析器、优化器、缓存、存储引擎等组成,可以分为四层,即连接层、服务层、引擎层和文件系统层。

  • 如下是官方文档中MySQL的基础架构图:
    在这里插入图片描述

1、连接层
最上面是一些客户端和连接服务,不是MySQL特有的,所有基于网络的C/S的网络应用程序都应该包括连接处理、认证、安全管理等。

2、服务层
中间层是MySQL的核心,包括查询解析、分析、优化和缓存等。同时它还提供跨存储引擎的功能,包括存储过程、触发器和视图等。

3、引擎层
存储引擎层,它负责存取数据。服务器通过API可以和各种存储引擎进行交互。不同的存储引擎具有不同的功能,我们可以根据实际需求选择使用对应的存储引擎。

4、存储层
数据存储层,主要是将数据存储与运行与裸设备的文件系统之上,并完成与存储引擎的交互。


1.2.2 SQL查询流程

我们用一条SQL SELECT语句的执行轨迹里来说明客户端与MySQL的交互过程,如下图所示。
在这里插入图片描述

1)通过客户端/服务器通信协议与MySQL建立连接;

2)查询缓存,这是MySQL的一个可优化查询的地方,如果开启了Query Cache且在查询缓存过程中查询到完全相同的SQL语句,则将查询结果直接返回给客户端;如果没有开启Query Cache或者没有查询到完全相同的SQL语句,则会由解析器进行语法语义解析,并声称过解析树;

3)预处理器声生成新的解析树;

4)查询优化器生成执行计划;

5)查询执行引擎执行SQL语句,此时查询执行引擎会根据SQL语句中表的存储引擎类型,以及对应的API接口与底层存储引擎缓存或者物理文件的交互情况,得到查询结果,由MySQL Server过滤后将查询结果缓存并返回给客户端。若开启了Query Cache,这时也会将SQL语句和结果完整地保存到Query Cache中,以后若有相同的SQL语句执行则直接返回结果;



1.3 MySQL物理文件

物理文件包括:日志文件,数据文件,配置文件;

1.3.1 日志文件

日志文件包括:

  • error log:错误日志 排错 /var/log/mysqld.log【默认开启】;
  • bin log:二进制日志 备份 增量备份 DDL DML DCL;
  • relay log:中继日志 复制 接收replication master;
  • slow log:慢查询日志 调优 查询时间超过指定值;
-- 查看错误日志文件路径
show variables like 'log_error';-- 慢查询日志文件路径
show variables like 'slow_query_log_file';-- bin log日志文件 需要在my.cnf中配置
log-bin=/var/log/mysql-bin/bin.log
server-id=2-- 查看relay log相关参数
show variables like '%relay%'

1.3.2 配置文件&数据文件

1)配置文件my.cnf
在my.cnf文件中可以进行一些参数设置,对数据库进行调优。

[client]                                     #客户端设置,即客户端默认的连接参数
port = 3307                                  #默认连接端口
socket = /data/mysqldata/3307/mysql.sock     #用于本地连接的socket套接字
default-character-set = utf8mb4              #编码[mysqld]                                     #服务端基本设置
port = 3307                                  #mysql监听端口
socket = /data/mysqldata/3307/mysql.sock     #为mysql客户端程序和服务器之间的本地通讯指定一个套接字文件
pid-file = /data/mysqlldata/3307/mysql.pid   #pid文件所在目录
basedir = /usr/local/mysqll-5.7.11           #使用该目录作为根目录(安装目录)
datadir = /data/mysqldata/3307/data          #数据文件存放的目录
tmpdir = /data/mysqldata/3307/tmp            #mysql存放临时文件的目录
character_set_server = utf8mb4               #服务端默认编码(数据库级别)

2)数据文件

-- 查看数据文件的位置
show variables like '%dir%';

1、.frm文件
不论是什么存储引擎,每一个表都会有一个以表名命名的.frm文件,与表相关的元数据信息都存放在此文件中,包括表结构的定义信息等;

2、.myd文件
myisam存储引擎专用,存放myisam表的数据(data)。每一个myisam表都会有一个.myd文件与之呼应,同样存放在所属数据库的目录下;

3、.myi文件
也就是myisam存储引擎专用,存放myisam表的索引相关信息。每一个myisam表对应一个.myi文件,其存放的位置和.frm及.myd一样

4、.ibd文件
存放innoDB的数据文件(包括索引)

5、db.opt文件
此文件在每一个自建的库里都会有,记录这个库的默认使用的字符集和校验规则;




2.MySQL的备份与恢复

2.1 为什么要进行数据备份

我们试想一下,在生产环境中什么最重要?如果我们服务器的硬件坏了可以维修或者换新,软件问题可以修复或重新安装,但是如果数据没了呢,对于一些网站、系统来说,数据库就是一切,所以做好数据库的备份是至关重要的!

2.1.1 数据库备份的应用场景

数据备份在很多工作中都是经常会用到的,因为数据容易因为各种原因而丢失,造成数据丢失的原因有哪些呢?

  • 数据丢失应用场景
    • 系统硬件或软件故障
    • 自然灾害,比如水灾、火灾、地震等
    • 黑客攻击,非法访问者故意破坏
    • 误操作,认为的误操作占比最大
      在这里插入图片描述
  • 非数据丢失应用场景:
    • 开发测试环境数据库搭建
    • 数据库或者数据迁移


2.2 数据备份的类型

2.2.1 按照业务方式分

完全备份
将数据库的全部信息进行备份,包括数据库的数据文件、日志文件,还需要备份数据的存储位置以及数据库中的全部对象和相关信息。

差异备份
备份从最近的完全备份后对数据所做的修改,备份完全备份后变化了的数据文件、日志文件以及数据库中其他被修改的内容。

增量备份
增量备份是指在一次全备份或上一次增量备份后,以后每次的备份只需备份与前一次相比增加或者被修改的文件。
在这里插入图片描述

完全备份差异备份增量备份
备份方法备份所有文件一次全备份后,备份与全备份差异的部分一次全备份后与上次备份的差异部分
备份速度最慢较快最快
恢复速度最快较快最慢
空间要求最多较多最少
优势最快的恢复速度,只需要上一次完全备份就能恢复相比增量,更快也更简单并且只需要最近一次的完全备份和最后一次的差异备份就能恢复备份速度快,较少的空间需求,没有重复的备份文件
劣势最多的空间需求,大量重复的备份较慢的备份速度,仍然会存在许多的备份文件最慢的恢复速度,恢复需要最近一次完全备份和全部增量备份

2.2.2 备份的组合方式

完全备份与差异备份
以每周数据备份为例,可以在星期一进行完全备份,在星期二至星期六进行差异备份。如果在星期六数据被破坏了,则只需要还原星期一完全的备份和星期五的差异备份。

这种策略备份数据需要较多的时间,但还原数据使用较少的时间。
在这里插入图片描述

完全备份与增量备份
以每周数据备份为例,在星期一进行完全备份,在星期二至星期六进行增量备份。如果在星期六数据被破坏了,则需要还原星期一正常的备份和从星期二至星期五的所有增量备份。

这种策略备份数据需要较少的时间,但还原数据使用较长的时间。
在这里插入图片描述



2.3 MySQL冷备份和热备份

冷备份与热备份指的是,按照数据库的运行状态分类;

2.3.1 冷备份

冷备份指的是当数据库进行备份时,数据库不能进行读写操作,即数据库要下线;
在这里插入图片描述
冷备份的优点:

  • 是操作比较方便的备份方法(只需拷贝文件)
  • 低度维护,高度安全

冷备份的缺点:

  • 在实施备份的全过程中,数据库必须要作备份而不能作其他工作;
  • 若磁盘空间有限,只能拷贝到磁带等其他外部存储设备上,速度比较慢;
  • 不能按表或按用户恢复;

2.3.2 热备份

热备份
热备份是在数据库运行的情况下,备份数据库操作的SQL语句,当数据库发生问题时,可以重新执行一遍备份的sql语句。
在这里插入图片描述
热备份的优点:

  • 可在表空间或数据文件级备份,备份时间短;
  • 备份时数据库仍可使用;
  • 可达到秒级恢复(恢复到某一时间点上);

热备份的缺点:

  • 不能出错,否则后果严重;
  • 因难维护,所以要特别仔细小心,不允许“以失败而告终”;


2.4 实战演练

2.4.1 冷备份实战

1、关闭SELinux
修改selinux配置文件,将SELINUX=enforcing改成SELINUX=disabled,保存后退出;

vim /etc/selinux/config
SELINUX=disabled

修改后需要重启

reboot # 重启命令

2、找到MySQL数据文件位置,停止MySQL服务;

show variables like '%dir%';-- 结果显示,数据目录就是datadir的所在位置,即/var/lib/mysql/service mysqld stop -- 停止mysql

3、进入到/mysql目录,执行打包命令,将数据文件打包备份;

cd /var/lib/ # 进入其上级目录
tar jcvf /root/backup.tar.bz2 mysql/  #打包压缩到root目录下

4、删除掉数据目录下的所有数据

rm -rf /var/lib/mysql/

5、恢复数据(使用tar命令)

-- 解压
tar jxvf backup.tar.bz2 mysql/-- 把备份的文件移动到/var/lib里面去替代原来的mysql
mv /root/mysql/ /var/lib/

6、启动MySQL,然后登录MySQL,查看数据是否丢失,如果数据正常代表冷备份成功;

service mysqld start

2.4.2 热备份实战

mysqldump备份工具
mysqldump是MySQL数据库用来备份和数据转移的一个工具,一般在数据量很小的时候(几个G)可以用于备份。热备份可以对多个库进行备份,可以对单张表活着某几张表进行备份。

备份单个数据库
1、创建文件夹,备份数据;

mkdir databackup
cd databackup
mysqldump -uroot -p lagou_edu > lagou_edu.sql

2、模拟数据丢失,删除数据库,然后重新创建一个新的库;

drop database lagou_edu;
create database lagou_edu character set 'utf8';

3、恢复数据

cd databackup
mysql -uroot -p lagou_edu < lagou_edu.sql

备份数据库的某些表
1、备份表数据

mysqldump -uroot -p lagou_edu course course_lesson > backupTable.sql

2、模拟数据丢失,删除数据表

drop table course;
drop table course_lesson;

3、恢复数据

mysql -uroot -p lagou_edu < backupTable.sql

直接将MySQL数据库压缩备份
1、备份数据

mysqldump -uroot -p lagou_edu | gzip > lagou_edu.sql.gz

2、模拟数据丢失,删除数据库

drop database lagou_edu;
create database lagou_edu character set 'utf8';

3、恢复数据

gunzip < lagou_edu.sql.gz | mysql -uroot -p lagou_edu



3.MySQL查询和慢查询日志分析

3.1 SQL性能下降的原因

在日常的运维过程中,经常会遇到DBA将一些执行效率较低的SQL发过来找开发人员分析,当我们拿到这个SQL语句之后,在对这些SQL进行分析之前,需要明确可能导致SQL执行性能下降的原因进行分析,执行性能下降可以提现在以下两个方面:

1、等待时间长
锁表导致查询一直处于等待状态,后续我们从MySQL锁的机制去分析SQL执行的原理;

2、执行时间长
a. 查询语句写的烂;
b. 索引失效;
c. 关联查询太多join;
d. 服务器调优及各个参数的设置;



3.2 需要遵守的优化原则

查询优化是一个复杂的工程,涉及从硬件到参数配置、不同数据库的解析器、优化器实现、SQL语句的执行顺序,索引以及统计信息的采集等等方面。

下面给大家介绍几个编写SQL的关键原则,可以帮助我们编写出更加高效的SQL查询:

  • 第一条:只返回需要的结果
    • 一定要为查询语句指定where条件,过滤掉不需要的数据行;
    • 避免使用select * from,因为它表示查询表中的所有字段;
  • 第二条:确保查询使用了正确的索引
    • 经常出现在WHERE条件中的字段建立索引,可以避免全表扫描;
    • 将order by排序的字段加入到索引中,可以避免额外的排序操作;
    • 多表连接查询的关联字段建立索引,可以提高连接查询的性能;
    • 将group by分组操作字段加入到索引中,可以利用索引完成分组;
  • 第三条:避免让索引失效
    • 在where子句中对索引字段进行表达式运算或者使用函数都会导致索引失效;
    • 使用like匹配时,如果通配符出现在左侧,则无法使用索引;
    • 如果where条件中的字段上创建了索引,尽量设置为not null;


3.3 SQL的执行顺序

程序员编写的SQL

select distinct <select_list>from <left_table> <join_type>join <right_table> on <join_condition>where <where_condition>group by <group_by_list>having <having_condition>order by <order_by_condition>limit <limit_number>

MySQL执行的SQL

1from <left_table> <join_type>2on <join_condition>3<join_type> join <right_table>4where <where_condition>5group by <group_by_list>6having <having_condition>7select8distinct <select_list>9order by <order_by_condition>10limit <limit_number>

1、from子句:左右两个表的笛卡尔积;
2、on:筛选满足条件的数据;
3、join:如果是inner join那就正常,如果是outer join则会添加回来上面一步过滤掉的一些行;
4、where:对不满足条件的行进行移除,并且不能恢复;
5、group by:分组后只能得到每组的第一行数据,或者聚合函数的数值;
6、having:对分组后的数据进行筛选;
7、select:执行select操作,获取需要的列;
8、distinct:去重;
9、order by:排序;
10、limit:取出指定行的记录,并将结果返回;

注意:mysql在没有建立索引的情况下,执行查询时,会进行全表扫描;

查看下面的SQL分析执行顺序

selectid,sex,count(*) AS num
fromemployee
where name is not null
group by sex
order by id

上面的SQL执行顺序如下:
1、首先执行from子句,从employee表组装数据源的数据;
2、执行where子句,筛选employee表中所有name不为null的数据;
3、执行group by子句,按“性别”列进行分组;
4、执行select操作,获取需要的列;
5、最后执行order by,对最终的结果进行排序;



3.4 join查询的七种方式

7种join,可以分为四类:内连接左连接右连接全连接
在这里插入图片描述



3.5 join查询sql编写

1、创建表 插入数据

---部门表
DROP TABLE IF EXISTS `t_dept`; CREATE TABLE `t_dept` (`id` varchar(40) NOT NULL,`name` varchar(40) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;---员工表
DROP TABLE IF EXISTS `t_emp`; CREATE TABLE `t_emp` (`id` varchar(40) NOT NULL,`name` varchar(40) DEFAULT NULL,`age` int(3) DEFAULT NULL,`deptid` varchar(40) DEFAULT NULL,PRIMARY KEY (`id`),KEY `deptid` (`deptid`),CONSTRAINT `deptid` FOREIGN KEY (`deptid`) REFERENCES `t_dept` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;--插入部门数据
INSERT INTO `t_dept` VALUES ('1', '研发部'); 
INSERT INTO `t_dept` VALUES ('2', '人事部'); 
INSERT INTO `t_dept` VALUES ('3', '财务部');--插入员工数据
INSERT INTO `t_emp` VALUES ('1', '赵四', 23, '1'); 
INSERT INTO `t_emp` VALUES ('2', '刘能', 25, '2'); 
INSERT INTO `t_emp` VALUES ('3', '广坤', 27, '1'); 
INSERT INTO `t_emp` VALUES ('4', '玉田', 43, NULL);

3.5.1 内连接

在这里插入图片描述

select * from t_emp e inner join t_dept d on e.deptid = d.id

3.5.2 左连接

在这里插入图片描述

select * from t_emp e left join t_dept d on e.deptid = d.id

3.5.3 左连接去重叠部分

在这里插入图片描述

select * from t_emp e left join t_dept d on e.deptid = d.id and e.deptid is null;

### 3.5.4 右连接 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/39261c2ae5f842bc8a92077f1da0391e.png) ```sql select * from t_emp e right join t_dept d on e.deptid = d.id; ```

右连接去重叠部分

在这里插入图片描述

select * from t_emp e right join t_dept d on e.deptid = d.id and e.id is null;

3.5.6 全连接

在这里插入图片描述

SELECT * FROM t_emp e LEFT JOIN t_dept d ON e.deptid = d.id
UNION
SELECT * FROM t_emp e RIGHT JOIN t_dept d ON e.deptid = d.id

MySQL union操作符用于连接两个以上的select语句的结果组合到一个结果集合中。多个select语句会删除重复的数据。

3.5.7 各自独有

在这里插入图片描述

SELECT * FROM t_emp e LEFT JOIN t_dept d ON e.deptid = d.id
WHERE e.deptid IS NULL
UNION
SELECT * FROM t_emp e RIGHT JOIN t_dept d ON e.deptid = d.id
WHERE e.id IS NULL

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/760627.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

搜索测试题题解(3月21号总结)

目录 1.Shufflem Up 2.Pots 3.Open the Lock 1.Shufflem Up 样例 InputcopyOutputcopy 2 4 AHAH HAHA HHAAAAHH 3 CDE CDE EEDDCC 1 2 2 -1 题意&#xff1a;本题要求将s1和s2合并&#xff0c;再将合并的s分为s1和s2&#xff0c;知道s为我们需要得到的期望s&#xff0c;输…

巨细!Python爬虫详解

爬虫&#xff08;又称为网页蜘蛛&#xff0c;网络机器人&#xff0c;在 FOAF 社区中间&#xff0c;更经常的称为网页追逐者&#xff09;&#xff1b;它是一种按照一定的规则&#xff0c;自动地抓取网络信息的程序或者脚本。 如果我们把互联网比作一张大的蜘蛛网&#xff0c;那…

北航最新!基于条纹投影的半透明物体3D重建方法

作者&#xff1a;小柠檬 | 来源&#xff1a;3DCV 在公众号「3DCV」后台&#xff0c;回复「原论文」可获取论文pdf 添加微信&#xff1a;dddvision&#xff0c;备注&#xff1a;3D高斯&#xff0c;拉你入群。文末附行业细分群 详细内容请关注3DCV 3D视觉精品课程&#xff1a;…

雷池 WAF 社区版:下一代 Web 应用防火墙的革新

黑客的挑战 智能语义分析算法&#xff1a; 黑客们常利用复杂技术进行攻击&#xff0c;但雷池社区版的智能语义分析算法能深入解析攻击本质&#xff0c;即使是最复杂的攻击手法也难以逃脱。 0day攻击防御&#xff1a; 传统防火墙难以防御未知攻击&#xff0c;但雷池社区版能有效…

01_Kubernetes基础

Kubernetes为什么叫K8S&#xff1a;因为K和S之间有8个字母 为什么需要K8S 对于云计算来说有自己的交互标准 Paas的下一代标准就是容器化&#xff0c;容器的集群化有没有很好的方案&#xff1f;有需求就会有产品&#xff0c;这个产品就叫做资源管理器。 首先是Apache的MESOS&…

LeetCode每日一题【206. 反转链表】

思路&#xff1a;双指针&#xff0c;一前一后&#xff0c;逐个把指向后面的指针指向前面。 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), ne…

刷题训练之滑动窗口

> 作者简介&#xff1a;დ旧言~&#xff0c;目前大二&#xff0c;现在学习Java&#xff0c;c&#xff0c;c&#xff0c;Python等 > 座右铭&#xff1a;松树千年终是朽&#xff0c;槿花一日自为荣。 > 目标&#xff1a;熟练掌握滑动窗口算法&#xff0c;并且能把下面的…

又一个城市火了,媒介盒子盘点城市爆火原因

近日&#xff0c;“甘肃天水麻辣烫”在各大平台频频登上热搜榜&#xff0c;甘肃当地也及时接住了这泼天富贵&#xff0c;开通“麻辣烫专线”、机场高铁免费接、免费送门票等。这些措施似曾相识&#xff0c;因为在天水前&#xff0c;已经有淄博和哈尔滨这两个城市的案例可以供天…

【Linux】实现进度条小程序

个人主页 &#xff1a; zxctscl 如有转载请先通知 文章目录 1. 前言2. 回车和换行3. 缓冲区4. 进度条4.1 倒计时设置4.2 进度条4.2.1 实现简单进度条4.2.2 进度条完善 5. 附进度条代码5.1 Processbar.h5.2 Processbar.c5.3 Main.c5.4 Makefile 1. 前言 在之前已经了解了 【Lin…

中文数字与阿拉伯数字:数字符号的文化交融

title: 中文数字与阿拉伯数字&#xff1a;数字符号的文化交融 date: 2024/3/21 17:46:31 updated: 2024/3/21 17:46:31 tags: 数字起源符号系统差异中文数字特点阿拉伯数字优势转换技术应用文化交流融合数字表达互通 中文数字与阿拉伯数字的关系起源&#xff1a; 中文数字是古…

硬盘、内存、缓存(CPU)和寄存器 空间大小与存取速度的区别及设计原理

一、寄存器和存储器是不同的 很多人会将 寄存器 与 存储器 二者混淆&#xff0c;认为它们是同一个东西。但并不是&#xff01;&#xff01; 寄存器是CPU上的一个模块 存储器是 内存硬盘的统称 二、存取速度的比较 CPU(包含寄存器&#xff0c;缓存) > 内存 > 硬盘 内…

代码学习第24天----回溯算法

随想录日记part24 t i m e &#xff1a; time&#xff1a; time&#xff1a; 2024.03.10 主要内容&#xff1a;回溯算法在代码学习中尤其重要&#xff0c;所以今天继续加深对其的理解&#xff1a;1&#xff1a;递增子序列 &#xff1b;2.全排列 &#xff1b;3.全排列II 491.递…

C++ list详解及模拟实现

目录 本节目标 1. list的介绍及使用 1.2 list的使用 2.list的模拟实现 1.对list进行初步的实现 2.头插和任意位置的插入 3.pos节点的删除&#xff0c;头删&#xff0c;尾删 4.销毁list和析构函数 5.const迭代器 6.拷贝构造和赋值操作 3.完整代码 本节目标 1. list的…

如何在Ubuntu使用宝塔面板搭建hadsky轻论坛并发布到公网可随时访问

文章目录 推荐前言1. 网站搭建1.1 网页下载和安装1.2 网页测试1.3 cpolar的安装和注册 2. 本地网页发布2.1 Cpolar临时数据隧道2.2 Cpolar稳定隧道&#xff08;云端设置&#xff09;2.3 Cpolar稳定隧道&#xff08;本地设置&#xff09;2.4 公网访问测试 总结 推荐 前些天发现了…

IP证书是什么?怎么申请?

IP证书&#xff0c;通俗来说&#xff0c;就像是专门给互联网上的一个门牌号码&#xff08;公网IP地址&#xff09;发放的“安全身份证”。这个证书主要是用来给那些通过IP地址直接访问的网站或服务提供HTTPS加密保护的。通常情况下&#xff0c;SSL证书是颁发给域名&#xff08;…

社交媒体的未来:探讨Facebook的发展趋势

引言 在数字化时代&#xff0c;社交媒体已经成为人们日常生活中不可或缺的一部分。作为全球最大的社交媒体平台之一&#xff0c;Facebook一直在不断地追求创新&#xff0c;以满足用户日益增长的需求和适应科技发展的变革。本文将探讨Facebook在未来发展中可能面临的挑战和应对…

模方软件匀色功能是灰色的不能点是什么原因?

问题如图 模方软件试用版没有匀色权限&#xff0c;正式版才可以用 。 下方链接有1个月的授权&#xff0c;有需要可以点开&#xff0c;软件正式版的可以使用匀色这个功能。https://item.jd.com/10037263088236.html

不会吧!不会吧!居然还有人不知道这个???

在2024年3月4日&#xff0c;由Anthropic推出了Claude3系列的大语言模型&#xff1a;该系列包括三种最先进的型号&#xff08;按功能升序排列&#xff09;&#xff1a;Claude 3 Haiku、Claude 3 Sonnet 和 Claude 3 Opus。每个后续型号都提供越来越强大的性能&#xff0c;允许用…

用JDBC游标的方式导出mysql数据以及springboot打包成exe程序实践

用JDBC实现游标查询&#xff0c;关键代码在于 Statement 的 fetchSize 属性的设置。 ExportDataService import cn.hutool.core.io.FileUtil; import cn.hutool.core.text.csv.CsvUtil; import cn.hutool.core.text.csv.CsvWriter; import cn.hutool.core.util.StrUtil; impo…

许战海战略文库|橋頭品牌突破区域局限打透全国市场的4个建议

自宣统元年(公元1908年)起&#xff0c;重庆南岸区海棠溪古石桥边诞生了一家传奇火锅店——桥头火锅。凭借深厚的文化底蕴和独特的风味&#xff0c;历经百年沉淀桥头火锅已成为南岸区乃至中华餐饮文化中的璀璨明珠。 桥头火锅不仅荣获了“中华老字号”和“中国名菜”两项殊荣&a…