1,join优化
(1),因为inner join 是等值连接,所以他的效率是最高的,能够使用inner join 就尽量使用inner join
(2),连表查询的效率又比子查询效率高,能够使用联查代替子查询就尽量使用联查
(3),用join联查的时候先要使用on 再使用where条件过滤
(4),使用left join 的时候左边的表尽量小,right join 反之
2,索引
(1),如果你的where条件字段包含于里复合索引,那么这个字段应该放在复合索引的最左端
(2),连表查询的时候关联字段必须是同种类型的,否则不能在这个字段上使用索引
(3),切记like 里面‘%xx’不可以使用索引,但是‘xx%‘’可以使用;
(4),建立复合索引的时候我们一定要将最唱用作限制条件的字段放在最左边
(5),尽量不要使用对多个字段做排序操作,如果实在需要一定要对他们建立复合索引;
3,其它优化
(1),善于使用limit 1 ,如果你只是需要查询一条数据,就使用limit 1 ,他可以终止对数据库的全表扫描
(2),尽量少排序
(3),尽量不要使用not in 和 <>
(4),尽量少用or查询
(5),不要在列上进行运算
(6),可以对经常使用的sql建立视图改善查询速度