1. 选择有效率的表名排序
在FROM子句中包含多个表的情况下,选择条数最少的表做基础表(第一个被访问的表、FROM子句最后面的表)
如果有3个以上的表连接查询,选择交叉表(被其他表引用的表)做基础表
2.WHERE子句的执行顺序
采用自后而前的顺序解析WHERE子句,根据这个原则,那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾
3.用EXISTS替代IN,用NOT EXISTS替代NOT IN
4.避免在索引列上使用NOT
5.在索引列上用UNION代替OR
6.两个表进行JOIN时,大表放在前面,JOIN字段建索引
7.尽量不用临时表