优化SQL SELECT语句性能的6个简单技巧分别是什么

发布时间:2021-11-29 10:26:33 作者:柒染
来源:亿速云 阅读:250

本篇文章给大家分享的是有关优化SQL SELECT语句性能的6个简单技巧分别是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

SELECT语句的性能调优有时是一个非常耗时的任务,在我看来它遵循帕累托原则。20%的努力很可能会给你带来80%的性能提升,而为了获得另外20%的性能提升你可能需要花费80%的时间。除非你在金星工作,那里的每一天都等于地球上的243天,否则交付期限很有可能使你没有足够的时间来调优SQL查询。根据我多年编写和运行SQL语句的经验,我开始开发一个检查列表,当我试图提高查询性能时供我参考。在进行查询计划和阅读我使用的数据库文档之前,我会参考其中的内容,数据库文档有时会很复杂。我的检查列表绝对说不上全面或科学,它更像是一个保守计算,但我可以说,遵循这些简单的步骤大部分时间我确实能得到性能提升。检查列表如下。

检查索引

在SQL语句的WHERE和JOIN部分中用到的所有字段上,都应该加上索引。进行这个3分钟SQL性能测试。不管你的成绩如何,一定要阅读那些带有信息的结果。

限制工作数据集的大小

检查那些SELECT语句中用到的表,看看你是否可以应用WHERE子句进行过滤。一个典型的例子是,当表中只有几千行记录时,一个查询能够很好地执行。但随着应用程序的成长,查询慢了下来。解决方案或许非常简单,限制查询来查看当前月的数据即可。当你的查询语句带有子查询时,注意在子查询的内部语句上使用过滤,而不是在外部语句上。

只选择你需要的字段额外的字段

通常会增加返回数据的纹理,从而导致更多的数据被返回到SQL客户端。另外:

移除不必要的表

移除不必要的表的原因,和移除查询语句中不需要的字段的原因一致。编写SQL语句是一个过程,通常需要大量编写和测试SQL语句的迭代过程。在开发过程中,你可能将表添加到查询中,而这对于SQL代码返回的数据可能不会有任何影响。一旦SQL运行正确,我发现许多人不会回顾他们的脚本,不会删除那些对最终的返回数据没有任何影响和作用的表。通过移除与那些不必要表的JOINS操作,你减少了大量数据库必须执行的流程。有时,就像移除列一样,你会发现你减少的数据又通过数据库返回来了。

移除外部连接查询

这说起来容易做起来难,它取决于改变表的内容有多大的影响。一个解决办法是通过在两个表的行中放置占位符来删除OUTER  JOINS操作。假设你有以下的表,它们通过定义OUTER JOINS来确保返回所有的数据:优化SQL SELECT语句性能的6个简单技巧分别是什么

解决办法是在customer表的行中增加一个占位符,并更新sales表中的所有NULL值到占位符。

优化SQL SELECT语句性能的6个简单技巧分别是什么

你不只是删除了对OUTER  JOIN操作的依赖,同时标准化了没有客户的销售人员如何表示。其他开发人员不必编写额外语句,例如ISNULL(customer_id, “No customer  yet”)。

删除JOIN和WHERE子句中的计算字段

这是另外一个有时可能说起来容易做起来难的技巧,它取决于你更改表模式的权限大小。可以将连接语句中用到的计算字段作为一个新字段在表中创建。给出以下SQL语句:

优化SQL SELECT语句性能的6个简单技巧分别是什么

在sales表中利用年和月增加一列,可以提高性能。更新后的SQL语句将如下: 

优化SQL SELECT语句性能的6个简单技巧分别是什么

上边的建议可以归结为以下几点:

以上就是优化SQL SELECT语句性能的6个简单技巧分别是什么,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。

推荐阅读:
  1. 怎么优化mysql的sql语句
  2. MySQL中的SQL语句怎么优化

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

select sql

上一篇:SQL中的结构化查询语言是怎样的

下一篇:C/C++ Qt TreeWidget单层树形组件怎么应用

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》