如何调优SQL

以MySQL为例

  • 如何定位并优化慢查询SQL
  • 联合索引的最左匹配原则的成因
  • 索引是建立得越多越好吗

一、如何定位并优化慢查询SQL

具体场景具体分析,在这里只提出大致思路

  1. 根据慢日志定位慢查询SQL
  2. 使用explain等工具分析sql
  3. 修改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%';查看本次会话的慢查询的数量,一旦重新打开会话就会清零。

猜你喜欢

转载自www.cnblogs.com/dasha/p/10926746.html
今日推荐