第四掌 尽量去掉"IN"、"OR" 含有"IN"、"OR"的Where子句常会使用工作表,使索引失效;如果不产生大量重复值,可以考虑把子句拆开;拆开的子句中应该包含索引。 例4: select count(*) from stuff where id_no in('0','1')(23秒) 可以考虑将or子句分开: select count(*) from stuff where id_no='0' select count(*) from stuff where id_no='1' 然后再做
SQL优化手册
1、in vs or
对索引字段或非索引字段单个值操作时,两者无异;但是对非索引字段多个值操作,相比in,or效率会随着值的个数增加效率相对下滑
2、group by vs distinct
案例:select count() from (select name from student group by name )student_temp
这个sql作用是统计学生表不重复姓名的总数
优化方案1:select count(distinct name) from student
SQL优化手册
1、in vs or
对索引字段或非索引字段单个值操作时,两者无异;但是对非索引字段多个值操作,相比in,or效率会随着值的个数增加效率相对下滑
2、group by vs distinct
案例:select count() from (select name from student group by name )student_temp
这个sql作用是统计学生表不重复姓名的总数
优化方案1:select count(distinct name) from student