以MySQL为例
- 如何定位并优化慢查询SQL
- 联合索引的最左匹配原则的成因
- 索引是建立得越多越好吗
一、如何定位并优化慢查询SQL
具体场景具体分析,在这里只提出大致思路
- 根据慢日志定位慢查询SQL
- 使用explain等工具分析sql
- 修改SQL或者尽量让SQL走索引
根据慢日志定位慢查询SQL
使用命令 show variables like '%quer%';来查询相关的系统变量;
- show_query_log:慢日志状态,off是关闭,on是打开;使用 set global show_query_log = on;打开
- show_query_log_file:慢日志记录的文件
- long_query_time:每次执行SQL超过这个时长就是慢SQL,以秒为单位;使用set global long_query_time = 1;设置时长
这些命令只是临时改变这些环境变量,如果想长期使用,需要修改配置文件my.ini
使用show status like '%show_queries%';查看本次会话的慢查询的数量,一旦重新打开会话就会清零。