优化具体方法
1、SQL后面添加limit
2、禁用select *
3、优化like语句
4、避免在索引列上使用内置函数和表达式操作
5、对查询进行优化,应考虑在 where 及 order by 涉及的列上建立索引,尽量避免全表扫描
6、在适当的时候,使用only indexscan
7、避免排序
7.1、灵活使用集合运算符的 ALL 可选项
7.2、使用 EXISTS 代替 DISTINCT
7.3、在极值函数中使用索引(MAX/MIN)
7.4、在 GROUP BY 子句和 ORDER BY 子句中使用索引
8、删除冗余和重复索引
9、关于大量DELETE/UPDATE操作
10、where 子句中考虑使用默认值代替 null
11、合理使用exists&in
12、能写在 WHERE 子句里的条件不要写在 HAVING 子句里
13、用varchar代替char,合理设置varchar可变字段长度
14、where后字段值注意引号使用,易导致索引失效
15、当在 SQL 语句中连接多个表时,请使用表的别名,并把别名前缀于每一列上,这样语义更加清晰
16、索引不适合建在有大量重复数据的字段上,如性别这类型数据库字段
17、表关联不要太多
18、Inner join 、left join、right join,优先使用 Inner join,如果是 left join,左边表结果尽量小
18.1、分解关联查询
18.2、改写关联查询
19、减少中间表
19.1、灵活使用 HAVING 子句
19.2、需要对多个字段使用 IN 谓词时,将它们汇总到一处
20、应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描
21、使用多列索引时,注意索引列的顺序,一般遵循最左匹配原则
22、字段类型能用数值尽量用数值类型
23、长度很长的多字段联合主键用hash
24、禁用UUID作为主键
25、善用set、explain查看&调试执行计划