MySQL查询优化简单总结


MySQL优化

原因

  1. 网络
  2. CPU

慢查询日志

配置文件

my.cnf

/etc/mysql/conf.d/mysql.cnf
[mysqld]
slow_query_log = ON
slow_query_log_file = /var/lib/mysql/instance-1-slow.log
long_query_time = 2

第一个参数是开启慢查询日志

第二个参数是设置位置

第三个的要记录的查询时间 单位s

慢查询分析工具

mysqldumpslow

该工具是慢查询自带的分析慢查询工具,一般只要安装了mysql,就会有该工具;

t总时间 c总次数 i锁的时间

mysqldumpslow -s c -t 10 /var/run/mysqld/mysqld-slow.log # 取出使用最多的10条慢查询

mysqldumpslow -s t -t 3 /var/run/mysqld/mysqld-slow.log # 取出查询时间最慢的3条慢查询

mysqldumpslow -s t -t 10 -g “left join” /database/mysql/slow-log # 得到按照时间排序的前10条里面含有左连接的查询语句

 mysqldumpslow -s r -t 10 -g 'left join' /var/run/mysqld/mysqld-slow.log # 按照扫描行数最多的

优化方式

服务器硬件

高性能CPU和内存

固态硬盘

MySQL服务器优化

操作系统:linux环境!

配置缓冲区、IO、并发

SQL本身优化

子查询(嵌套):使用子查询进行SELECT语句嵌套查询,可以一次完成很多逻辑上需要多个步骤才能完成的SQL操作,执行效率并不高,MYSQL需要创建临时表

连接查询:不需要建立临时表,因此其速度比子查询快

连接查询效率高于子查询

反范式设计

适当增加冗余字段

以空间换时间

索引优化

适当添加索引


文章作者: Bxan
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Bxan !
  目录