当你需要ChatAI服务但无法魔法或没有海外手机号码时,Chat8就是你的解决方案。我们基于OpenAi开发,所有用户内容都会加密,欢迎使用!点击使用:
https://chat.chat826.com/#/register?bronk_on=375671
1,Mysql开启binlog
配置文件添加:
log-bin=mysql-bin
binlog-format=ROW
server-id=1
以上代码
这是MySQL的二进制日志(Binary Log)配置,用于记录数据库的所有更改操作。下面是对这些配置项的解释:
log-bin=mysql-bin: 这个配置项指定了二进制日志文件的前缀为"mysql-bin"。所有以该前缀命名的日志文件都会被写入到指定的文件中。
binlog-format=ROW: 这个配置项指定了二进制日志的格式为"ROW"。使用"ROW"格式时,每个事务的更改操作都会以行的形式进行记录,包括对表的插入、更新和删除操作。
server-id=1: 这个配置项指定了服务器的唯一标识符为1。在复制过程中,每个服务器都需要有一个唯一的标识符来区分不同的服务器实例。
[mysqld]
port=3306
basedir=D:\Program Files\mysql-5.7.40-winx64\
datadir=D:\Program Files\mysql-5.7.40-winx64\\Data
log-error=D:\Program Files\mysql-5.7.40-winx64\\Logs.log
max_connections=200
max_connect_errors=10
character-set-server=utf8mb4
default-storage-engine=INNODB
default_authentication_plugin=mysql_native_password
local_infile=ON
log-bin=mysql-bin
binlog-format=ROW
server-id=1
[mysql]
default-character-set=utf8mb4
local_infile=ON
[client]
port=3306
default-character-set=utf8mb4
2,在Windows 开启多个不同端口的服务
将mysql目录复制一份,然后修改my.ini文件(只改端口与路径),例如
原来的是
[mysqld]
port=3306
basedir=D:\Program Files\mysql-5.7.40-winx64\
datadir=D:\Program Files\mysql-5.7.40-winx64\\Data
log-error=D:\Program Files\mysql-5.7.40-winx64\\Logs.log
max_connections=200
max_connect_errors=10
character-set-server=utf8mb4
default-storage-engine=INNODB
default_authentication_plugin=mysql_native_password
local_infile=ON
[mysql]
default-character-set=utf8mb4
local_infile=ON
[client]
port=3306
default-character-set=utf8mb4
改成:
[mysqld]
port=3307
basedir=D:\Program Files\mysql-5.7.40-winx643007\
datadir=D:\Program Files\mysql-5.7.40-winx643007\\Data
log-error=D:\Program Files\mysql-5.7.40-winx643007\\Logs.log
max_connections=200
max_connect_errors=10
character-set-server=utf8mb4
default-storage-engine=INNODB
default_authentication_plugin=mysql_native_password
local_infile=ON
[mysql]
default-character-set=utf8mb4
local_infile=ON
[client]
port=3307
default-character-set=utf8mb4
保存后,在mysql的bin 目录下执行mcd命令 ,
注意:
1, --defaults-file ,要使用实际 文件路径。执行完后,则电脑上有两个不同端口的mysql服务
2, cmd 命令的 MySQL 服务名称不能相同,
mysqld --install MySQL --defaults-file="C:\path\to\my.ini"
net start MySQL
3,执行计划 explain
MySQL 的 EXPLAIN 语句可以帮助你理解查询执行计划,它显示了 MySQL 如何执行 SQL 查询以及相关表的连接方式。通过查看执行计划,你可以诊断查询性能问题并优化查询。
以下是 EXPLAIN 输出中各列的含义:
id: 这是SELECT指令的标识符。同一个数字表示这些行属于同一个 SELECT 指令。如果父查询包含 UNION,则每个子查询将有一个不同的 ID。
select_type: 表示该条目属于哪种类型的 SELECT 语句。
SIMPLE: 最简单的 SELECT 类型(不使用 UNION 或子查询)。
PRIMARY: 包含子查询的最外层 SELECT。
UNION: UNION 中的第二个或后面的 SELECT 语句。
DEPENDENT UNION: UNION 中的第二个或后面的 SELECT 语句,取决于外面的查询。
UNION RESULT: UNION 的结果。
SUBQUERY: 子查询中的第一个 SELECT。
DEPENDENT SUBQUERY: 子查询中的第一个 SELECT,其结果取决于外部查询。
table: 显示正在操作的表名。
type: 连接类型,这是非常重要的信息,因为它直接反映了查询效率。
ALL: MySQL 将遍历整张表以找到匹配的行。
index: 类似于 ALL,但是只遍历索引树。
range: 只检索给定范围的行,使用一个索引来选择行。
index_subscan: 对于哈希索引,使用索引扫描。
ref: 表明 MySQL 使用了索引和索引中的一个值来选择行。
eq_ref: 类似于 ref,但用于非唯一索引,且与主键或唯一索引的前缀相匹配。
const: 当 MySQL 对单行值进行索引查找时使用。
system: 表只有一行记录,这通常意味着常量表。
NULL: 不需要访问表或索引。
possible_keys: 显示可能应用到此表的索引列表。
key: 显示 MySQL 实际决定使用的键(索引)。如果没有选择索引,键为 NULL。
key_len: 显示使用的索引的字节数,这通常可以帮助确定索引的使用效率。
ref: 显示索引列与哪一列或常量相匹配。
rows: MySQL 预估使用此方法可以检查多少行。
filtered: 显示 MySQL 根据表的条件过滤掉的行数百分比。
Extra: 包含 MySQL 解决查询过程中遇到的任何额外信息。
Using where: MySQL 在存储引擎检索行后再进行过滤。
Using temporary: MySQL 需要使用临时表来存储结果集。
Using filesort: MySQL 需要额外的排序步骤。
Using index: MySQL 使用覆盖索引(从索引获取所有需要的数据而无需访问表)。
Using index condition: 使用索引条件推送(Index Condition Pushdown, ICP)来优化查询。
Impossible WHERE noticed after reading const tables: MySQL 发现 WHERE 子句永远不可能为真。
No matching row in const table: MySQL 发现常量表中没有匹配的行。