sql性能调整:解决慢查询的一些小技巧
2023-09-06 10:56 abce 阅读(114) 评论(0) 编辑 收藏 举报1.明确需求
在写查询之前,要明确谁要数据、要什么数据、数据详细到什么程度、为什么要数据(有助于实现预期结果)
2.检查where子句
where子句使用索引表字段时,结果快。
3.检查group by和order by子句
在编写group by和order by语句之前,请先考虑表和索引的设计。
4.考虑所有的数据查询
sql性能调整意味着你必须既要看到森林,也要看到树木。
5.合并索引,或删除不必要的索引
6.显示指定要查看的列,而不是使用select *
7.添加额外的字段来代替select distinct查询
8.使用limit语句检查查询是否涉及过多信息:
与其盲目运行查询,不如先使用limit语句,以确保查询结果在可控范围内,尤其是在处理大型数据时。limit语句能显示查询是否涉及过多记录,从而避免意外造成系统负担过重和关闭。
9.分析慢查询的执行计划
10.针对查询特点、指定查询执行时间。
比如是否可以在非高峰时段或周末进行查询。
11.尝试使用union代替or
12.单个查询不要使用多种排序方式,比如同时出现desc、asc的排序
在低版本中不支持这种方式,只有在mysql8中才支持;对于低版本,可以考虑使用生成列(generated columns)来解决。
13.不要使用隐式转换
14.减少like查询对通配符"%"的使用。
部分场景可以考虑使用全文索引的match()、against()