主要是分析SQL语句查询速度慢的方法:
常用优化命令:
- show status:会返回一些计数器,show global status会查看所有服务器级别的所有计数
- show processlist:查看当前执行的sql线程状态
- explain:分析单条SQL语句性能
常见优化:
- count(*)会忽略所有列,直接统计所有列数。效率高于count(列名)。查询效率:count(0)=count(1)=count(*)
- limit偏移量较大时查询效率会变低,可以通过记录上一次查询的最大id来进行下一次查询。
避免以下查询,会导致放弃使用索引的情况:
- 不要对字段进行null判断
select id from t where num is null
- 不要使用!=或者<>
- 不要使用or来连接条件
- 慎用in和not in
- 不要使用like '%aa%',尽量采用like 'aa' 或者 like 'aa%'
- 不要在where字句中的 = 左侧进行表达式,函数,算术运算