sql性能调整:解决慢查询的一些小技巧
2023-09-06 10:56 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()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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