mysql sql常用优化

发布时间 2023-11-03 12:02:08作者: 古加纳

1 explain 输出执行计划,检查order by和where后边的字段是否建立索引

2 in() 中的列不应过多,not in 和 in()数据过多 都不再走索引,使用全表扫描,连续数值可以使用between 1 and 3

3 select 后边指定字段,少用select(*)

4 where 子句中避免is null /is not null

5 应尽量避免在 where 子句中使用 or

6 尽量用union all代替union

union和union all的差异主要是前者需要将结果集合并后再进行唯一性过滤操作,这就会涉及到排序,增加大量的CPU运算,加大资源消耗及延迟。当然,union all的前提条件是两个结果集没有重复数据。

7 模糊匹配like不要使用%xxx

8 limit 1和分页灵活使用

9 用连接查询代替子查询

10 小表驱动大表

  • in 适用于左边大表,右边小表。
  • exists 适用于左边小表,右边大表。