代码改变世界

sql性能调整:解决慢查询的一些小技巧

  abce  阅读(124)  评论(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()

相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2022-09-06 【MongoDB】Prometheus监控MongoDB
2020-09-06 PostgreSQL的MVCC(5)--In-page vacuum and HOT updates
点击右上角即可分享
微信分享提示