sql优化记录

常见sql

少挖坑

少用负向条件查询
负向条件查询: != 、 not in、not exists等 都不能使用索引

1
2
3
4

select * from Order where Status != 0
-- correct:
select * from Order where Status in (1, 2)

少用前导模糊查询
前导模糊模糊查询无法命中索引: ‘%param%’, ‘%param’
非前导: ‘param%’

少在条件字段进行运算
使用运算函数,查询一样会进行全表检索

1
2

select * from Order where Year(CreateTime)=2018

索引字段尽量不要允许NUll值