对于慢查询
检查系统运行情况,磁盘I/O等;
1、查看慢日志定位慢sql语句
2、慢sql语句查看执行计划,分析耗时原因
3、explain分析索引,如果缺少索引,根据业务需求,创建适合的索引
Mysql自带的诊断工具
set profiling = 1; ##开启sql诊断
show profiles; ##查看所有正在或刚刚结束的查询
show profile for query Number; ##查看编号为几的查询语句的深度分析
对于慢sql优化总结:
1、不要使用select *
2、mysql不支持函数转换,字段前端不能加函数,否则用不到索引
3、不要在sql语句字段前进行计算操作,避免函数索引
4、LIKE前缀%号、双百分号、_下划线查询非索引列或*无法使用到索引,如果查询的是索引列则可以
5、符合索引高选择性的字段排在前面
6、尽量避免子查询
7、用in代替or
8、避免数据类型不一致,会导致不适用索引
9、避免order by rand()
10、不要使用not反向查询
11、不要在order by、group by进行排序
…