mysql 数据库我如何优化慢的SQL语句

1.根据慢日志定位到慢sql语句,使用 show variables like ‘%quer%’ 查看与查询相关的变量,在慢sql查询中我们主要关注一下三个。

   开启 slow_query_log                set global slow_query_log = on

   设置 long_query_time 时间      set global long_query_time = 1

    找到 slow_query_log_file 指定的文件位置

2. 使用 explain 工具分析SQL语句

3.修改SQL或者尽量让SQL走索引

   增加索引  alter table <表明> and index 索引名(字段名)

    在语句后面增加 force idnex(索引)表示使用强制索引

番外篇:符合索引的 最左匹配原则

    1.最左前缀匹配原则,非常重要的原则,mysql会一直想右匹配直到遇到范围查询(>,<,between,like)就停止匹配。比如 a=3 and b=4 and c > 5 and d=5 如果建立(a,b,c,d)顺序的索引,d是用不到索引的,如果建立(a,b,d,c)的索引则都可以则都可以用得到。并且a,b,d 的顺序可以任意调整。

    2.= 和 in 可以乱序,例如 a=1 and b =2 and c= 3 建立 (a,b,c)索引可以任意顺序,mysql的查询优化器会帮你优化成索引可以识别的形式

04-15 19:28