-
避免使用select
select*不会走覆盖索引,会出现大量会表操作,从而导致查询sql性能很低。
查询的时候,只查询需要用到列,多余的列根本无需查询。
-
用union all 代替 union
使用union关键字,可以获取排重后的数据。
使用union all关键字,可以获取所有数据,包含重复数据。
如果能用union all 的时候,尽量不要用union,除非特殊场景,比如 union all之后,结果出现了重复的数据,而业务场景中不允许出现重复数据的,这时可以用union。
-
小表驱动大表
-
批量操作
-
多用limit
-
in中值太多
-
增量查询
-
高效的分页
-
用连接查询代替子查询
-
join的表不宜过多
-
join用时要注意
-
控制索引数量
-
选择合理的字段类型
-
提升 group by的效率
-
索引优化