## SQL查询优化
### 如何获取性能差的sql
1. 通过用户反馈获取的存在性能问题的SQL
2. 通过慢查日志获取的存在性能问题的SQL
show_query_log 启动停止慢查询日志参数 ON
set global
show_query_log_file 慢查询日志存放的地址和文件
long_query_time 慢查询记录的阈值单位s 默认10s 建议使用0.001
log_queries_not_useing_indexes
慢查询日志分析工具
mysqldumpslow
mysqldumpslow是一个针对于MySQL慢查询的命令行程序。在配置MySQL相关参数后,可以通过mysqldumpslow查找出查询较慢的SQL语句。
- 使用 show variables like “%query%” 查询参数 因为5.6之前的某些版本是ong_query_time, long_query_time和log-slow-queries。
与mysqldumpslow相关的配置变量:
- slow_query_log:是否开启慢查询日志
- long_query_time:是否设置慢查询的SQL执行规定时间
- slow_query_log_file:设置慢查询日志记录位置
- log_queries_not_using_indexes:是否设置了把没有索引的记录到慢查询日志
- 设置慢查询日志相关参数
开启慢查询日志
set global slow_query_log=on;
设置没有索引的记录到慢查询日志
set global log_queries_not_using_indexes=on;
设置到慢查询日志的 S