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的查询优化器会帮你优化成索引可以识别的形式