二十、SQL 查询优化
一、MySQL 日志类型
常用日志种类及选项
|
类型 |
用途 |
配置 |
|
错误日志 |
记录启动 / 运行 / 停止过程中的错误消息 |
log-rror[=name] |
|
查询日志
|
记录客户端连接和查询操作 |
general-log general-log-file= |
|
慢查询日志 |
记录耗时较长或不使用索引的查询操作
|
slow-query-log slow-query-log-file= long-query-time= |
二、优化 SQL 查询
1.记录慢查询
|
选项 |
含义 |
|
slow-query-log |
启用慢查询 |
|
slow-query-log-file |
指定慢查询日志文件 |
|
long-query-time |
超过指定秒数(默认 10秒)的查询才被记录 |
|
log-queries-not-using-indexes |
记录未使用索引的查询 |
2. 调整服务配置
[root@master ~]# vim /etc/my.cnf
slow_query_log=1
slow_query_log_file=mysql-slow.log
long_query_time=5
log_queries_not_using_indexes=1
[root@master ~]# systemctl restart mysqld
3. 查看慢查询日志
– 使用 mysqldumpslow 工具
[root@master ~]# mysqldumpslow /var/lib/mysql/mysql-slow.log
Reading mysql slow query log from /var/lib/mysql/mysql-slow.log
Count: 1 Time=0.00s (0s) Lock=0.00s (0s) Rows=0.0 (0), 0users@0hosts
三、关于查询的缓存
1.查看缓存的大小
mysql> SHOW VARIABLES LIKE "query_cache%";
2. 查看当前的查询缓存统计
mysql> show global status like "qcache%";
四、MySQL 性能调优的思路
|
手段 |
具体操作 |
|
升级硬件 |
CPU、内存、硬盘 |
|
加大网络带宽 |
付费加大带宽 |
|
调整 mysql 服务运行参数 |
并发连接数、连接超时时间、重复使用的线程数 |
|
调整与查询相关的参数 |
查询缓存、索引缓存 ....... |
|
启用慢查询日志 |
slow-query-log |
|
网络架构不合理 |
调整网络架构 |

浙公网安备 33010602011771号