mysql 数据库我如何优化慢的SQL语句mysql
1.根据慢日志定位到慢sql语句,使用 show variables like ‘%quer%’ 查看与查询相关的变量,在慢sql查询中咱们主要关注一下三个。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 索引名(字段名)table
在语句后面增长 force idnex(索引)表示使用强制索引变量
番外篇:符合索引的 最左匹配原则file
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的查询优化器会帮你优化成索引能够识别的形式