优化技巧
- 多表的连接条件应该写在
where
子句中 - 通过子查询分页时,当页数过大时,应该使用下面的方式进行分页
--
select *
from table
where id > (select id from table order by id limit 1000, 1)
order by id limit 10;
- 多表查询时,每个字段都指明其所在的表。
- 超过三个表禁止
join
,需要join
的字段,数据类型保持绝对一致。 - 多表关联查询时,保证被关联的字段需要有索引。
- 在使用
not in
的时候需要注意,子查询的结果中,不允许包含null
,不然结果会有问题。 - 一个需求可以通过自连接和子查询两种方式实现,使用自连接的方式效率更高。