好文
https://www.cnblogs.com/frankielf0921/p/5930743.html
https://www.cnblogs.com/panwenbin-logs/p/8366940.html
https://www.cnblogs.com/f-ck-need-u/archive/2018/05/08/9010872.html redo undo binlog
https://www.cnblogs.com/jasontec/p/9601637.html 主从配置参考
添加单值索引,联合索引,强行使用索引优化 explain详解 system > const > eq_ref > ref > range > index > all
mysql整理
SQL语言共分为四大类:
数据查询语言DQL,
数据操纵语言DML,
数据定义语言DDL,
数据控制语言DCL。
开启慢查询记录的步骤:默认不打开
打开 my.ini ,找到 [mysqld] 在其下面添加
long_query_time = 2
log-slow-queries = D:/mysql/logs/slow.log #设置把日志写在那里,可以为空,系统会给一个缺省的文件
a) 如何查询mysql的慢查询时间
Show variables like 'long_query_time';
b) 修改mysql 慢查询时间
set long_query_time=2//如果查询时间超过2秒就算作是慢查询
通过explain分析低效率的SQL语句的执行情况
https://www.cnblogs.com/hujinshui/p/10028587.html
使用explain分析该dql语句:
EXPLAIN SELECT * FROM order_copy WHERE id=12345
会产生如下信息:
select_type:表示查询的类型。
1)SIMPLE
简单的SELECT语句(不包括UNION操作或子查询操作)
table:输出结果集的表
type:表示表的连接类型(system和const为佳)
system>const>eq_ref>ref>fulltext>ref_or_null>index_merge>unique_subquery>index_subquery>range>index>all
possible_keys:表示查询时,可能使用的索引
key:表示实际使用的索引
key_len:索引字段的长度
rows:扫描的行数
Extra:执行情况的描述和说明
注意:要尽量避免让type的结果为all,extra的结果为:using filesort
小表驱动大表
说Sort_Buffer_Size 超过2KB的时候,就会使用mmap() 而不是 malloc() 来进行内存分配,导致效率降低。
主从同步原理——从库 从主机上同步数据的工作过程
Master,记录数据更改操作
— 启用binlog日志
— 设置binlog日志格式
— 设置server_id
Slave运行2个线程
— Slave_IO:复制master主机binlog日志文件里的SQL到本机的relay-log文件里
— Slave_SQL:执行本机relay-log文件里的SQL语句,重现Master的数据操作
https://blog.csdn.net/weixin_43184819/article/details/84000936
show status like ‘Connections’// 试图连接MySQL服务器的次数
show status like ‘Uptime’//服务器工作的时间(单位秒)
show status like ‘Slow_queries’//慢查询的次数 (默认是10秒中就当做是慢查询,如下图所示)
数据库引擎操作
修改默认的存储引擎
找到安装目录的my.ini 文件 修改
default-storage-engine=引擎名称
之后重启mysql服务生效
InnoDB类型的文件
*.frm :表结构定义文件,存放表的元数据,与存储引擎无关!MyISAM也有!
*.ibd : 数据文件,存放表中的数据!
MyISAM类型的文件
*.frm :表结构定义文件
*.MYD :数据文件
*.MYI :索引文件