返回顶部
首页 > 资讯 > 数据库 >sql语句的优化方法有哪些
  • 630
分享到

sql语句的优化方法有哪些

2024-04-02 19:04:59 630人浏览 薄情痞子
摘要

小编给大家分享一下sql语句的优化方法有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!sql语句优化的几种方法有:1、统一S

小编给大家分享一下sql语句的优化方法有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

sql语句优化的几种方法有:1、统一SQL语句的格式;2、对查询进行优化,应尽量避免全表扫描;3、SQL语句要简洁;4、考虑使用“临时表”暂存中间结果;5、尽量避免大事务操作;6、尽量避免向客户端返回大数据量。

sql语句的优化方法有哪些

我们开发项目上线初期,由于业务数据量相对较少,一些SQL的执行效率对程序运行效率的影响不太明显,而开发和运维人员也无法判断SQL对程序的运行效率有多大,故很少针对SQL进行专门的优化,而随着时间的积累,业务数据量的增多,SQL的执行效率对程序的运行效率的影响逐渐增大,此时对SQL的优化就很有必要。

sql语句优化的几种方法:

1、统一SQL语句的格式

对于以下两句SQL语句,很多人认为是相同的,但是,数据库查询优化器认为是不同的。

 ● select * from dual

 ● select * From dual

虽然只是大小写不同,查询分析器就认为是两句不同的SQL语句,必须进行两次解析。生成2个执行计划。所以作为程序员,应该保证相同的查询语句在任何地方都一致,多一个空格都不行!

2、少用 * ,用具体的字段列表代替“*”,不要返回用不到的任何字段。

3、对查询进行优化,应尽量避免全表扫描

1)、应考虑在 where 及 order by 涉及的列上建立索引

2)、应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:

select id from t where num is null

可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:

select id from t where num=0

3)、应尽量避免在 where 子句中使用!=或<>操作符,否则将导致引擎放弃使用索引而进行全表扫描

4)、应尽量避免在 where 子句中使用 or 来连接条件,否则将导致引擎放弃使用索引而进行全表扫描,如:

select id from t where num=10 or num=20

可以这样查询:

select id from t where num=10    
uNIOn all    
select id from t where num=20

5)、慎用in 和 not in,否则会导致全表扫描,如:

select id from t where num in(1,2,3)

对于连续的数值,能用 between 就不要用 in 了:

select id from t where num between 1 and 3

6)、合理使用like模糊查询

有的时候会需要进行一些模糊查询比如:

select * from contact where username like ‘%yue%’

关键词 %yue%,由于yue前面用到了“%”,因此该查询必然走全表扫描,除非必要,否则不要在关键词前加%

7)、应尽量避免在 where 子句中对字段进行表达式操作,这将导致引擎放弃使用索引而进行全表扫描。如:

select id from t where num/2=100

应改为:

select id from t where num=100*2

8)、应尽量避免在where子句中对字段进行函数操作,这将导致引擎放弃使用索引而进行全表扫描。如:

查询name以abc开头的id

select id from t where substring(name,1,3)='abc'

应改为:

select id from t where name like 'abc%'

4、用 exists 代替 in

很多时候用 exists 代替 in 是一个好的选择,Exists只检查存在性,性能比in强很多。例:

select num from a where num in(select num from b)

用下面的语句替换:

select num from a where exists(select 1 from b where num=a.num)

5、不要把SQL语句写得太长,太过冗余、要简洁;能用一句千万不要用两句

一般,将一个Select语句的结果作为子集,然后从该子集中再进行查询,这种一层嵌套语句还是比较常见的,但是根据经验,超过3层嵌套,查询优化器就很容易给出错误的执行计划。因为它被绕晕了。像这种类似人工智能的东西,终究比人的分辨力要差些,如果人都看晕了,我可以保证数据库也会晕的。

另外,执行计划是可以被重用的,越简单的SQL语句被重用的可能性越高。而复杂的SQL语句只要有一个字符发生变化就必须重新解析,然后再把这一大堆垃圾塞在内存里。可想而知,数据库的效率会何等低下。

6、考虑使用“临时表”暂存中间结果

简化SQL语句的重要方法就是采用临时表暂存中间结果,但是,临时表的好处远远不止这些,将临时结果暂存在临时表,后面的查询就在tempdb中了,这可以避免程序中多次扫描主表,也大大减少了程序执行中“共享”阻塞“更新锁”,减少了阻塞,提高了并发性能。

7、在使用索引字段作为条件时,如果该索引是复合索引,那么必须使用到该索引中的第一个字段作为条件时才能保证系统使用该索引,    否则该索引将不会被使用,并且应尽可能的让字段顺序与索引顺序相一致。

8、尽量使用数字型字段,若只含数值信息的字段尽量不要设计为字符型,这会降低查询和连接的性能,并会增加存储开销。    
这是因为引擎在处理查询和连接时会逐个比较字符串中每一个字符,而对于数字型而言只需要比较一次就够了。

9、尽可能的使用 varchar 代替 char ,因为首先变长字段存储空间小,可以节省存储空间,    其次对于查询来说,在一个相对较小的字段内搜索效率显然要高些。

10、避免频繁创建和删除临时表,以减少系统表资源的消耗。

11、尽量避免使用游标,因为游标的效率较差,如果游标操作的数据超过1万行,那么就应该考虑改写。

12、尽量避免大事务操作,提高系统并发能力。

13、尽量避免向客户端返回大数据量,若数据量过大,应该考虑相应需求是否合理。

以上是sql语句的优化方法有哪些的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网数据库频道!

您可能感兴趣的文档:

--结束END--

本文标题: sql语句的优化方法有哪些

本文链接: https://lsjlt.com/news/50414.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • SQL语句优化有哪些方法?
    1、避免全表扫描对查询进行优化,应尽量避免全表扫描,首先应考虑在where 及order by 涉及的列上建立索引。2、避免判断null 值应尽量避免在where 子句中对字段进行nul...
    99+
    2024-04-02
  • sql语句的优化方法有哪些
    小编给大家分享一下sql语句的优化方法有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!sql语句优化的几种方法有:1、统一S...
    99+
    2024-04-02
  • sql语句优化的方法有哪些
    优化SQL语句的方法有以下几种:1. 使用合适的索引:通过为表中的列创建索引,可以加快查询的速度。需要根据查询的需求和数据的特点选择...
    99+
    2023-09-05
    sql
  • MySQL语句优化的方法有哪些
    有以下几种常见的MySQL语句优化方法:1. 添加索引:通过为经常用于查询的列添加索引,可以提高查询的性能。索引可以加快查询的速度,...
    99+
    2023-09-16
    MySQL
  • MySQL优化语句执行的方法有哪些
    这篇文章主要介绍“MySQL优化语句执行的方法有哪些”,在日常操作中,相信很多人在MySQL优化语句执行的方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MySQL优...
    99+
    2024-04-02
  • SQL语句性能优化的策略有哪些
    这篇文章主要介绍“SQL语句性能优化的策略有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“SQL语句性能优化的策略有哪些”文章能帮助大家解决问题。52 条 SQL 语句性能优化策略:对查询进行优...
    99+
    2023-06-28
  • 常用SQL语句优化技巧有哪些
    这篇文章将为大家详细讲解有关常用SQL语句优化技巧有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体如下:除了建立索引之外,保持良好的SQL语句编写习惯将会降低SQ...
    99+
    2024-04-02
  • sql有哪些优化方法
    小编给大家分享一下sql有哪些优化方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1.对查询进行优化,应尽量避免全表扫描,首先...
    99+
    2024-04-02
  • 有哪些SQL优化方法
    这篇文章主要介绍“有哪些SQL优化方法”,在日常操作中,相信很多人在有哪些SQL优化方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”有哪些SQL优化方法”的疑惑有所帮助!接...
    99+
    2024-04-02
  • SQL优化方法有哪些
    这篇文章主要讲解了“SQL优化方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SQL优化方法有哪些”吧!一、避免进行null判断 &nbs...
    99+
    2024-04-02
  • sql语句的学习方法有哪些
    本篇内容介绍了“sql语句的学习方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!超强:SQL命令中...
    99+
    2024-04-02
  • clickhouse sql优化的方法有哪些
    点击豪斯(ClickHouse)是一个列式存储的数据库管理系统,专门用于大规模分布式数据处理。以下是一些ClickHouse SQL...
    99+
    2023-10-23
    clickhouse sql
  • sql语句的优化方式
    这篇文章主要讲解了“sql语句的优化方式”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“sql语句的优化方式”吧! 1.合理使用索引 索引是中重要的数据结...
    99+
    2024-04-02
  • sql优化常用的方法有哪些
    SQL优化常用的方法有以下几种:1. 使用索引:索引可以加快查询的速度,可以在查询中使用WHERE子句中的字段创建索引。2....
    99+
    2023-08-23
    sql
  • MySQL中数据库优化的常见sql语句有哪些
    这篇文章主要介绍“MySQL中数据库优化的常见sql语句有哪些”,在日常操作中,相信很多人在MySQL中数据库优化的常见sql语句有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大...
    99+
    2024-04-02
  • SQL语句limit的用法有哪些
    在SQL语句中,LIMIT用于限制查询结果返回的记录数。在大多数数据库管理系统中,LIMIT的用法如下:1. 基本用法:LIMIT ...
    99+
    2023-09-05
    sql
  • SQL DELETE语句的用法有哪些
    SQL DELETE语句用于从数据库表中删除一行或多行数据。DELETE语句的用法如下:1. 删除整个表中的所有数据:```...
    99+
    2023-10-11
    SQL
  • SQL语句优化
    一、SQL语句优化 (1)查看表结构 MariaDB [oldboy]> desc test1; +-------+----------+------+-----+---------+-------+...
    99+
    2024-04-02
  • 有哪些SQL语句
    这篇文章主要讲解了“有哪些SQL语句”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“有哪些SQL语句”吧!select 子句主要决定了从表中取出的列...
    99+
    2024-04-02
  • MySQL数据库的SQL语句优化方法
    1、使用 show status 了解各种 SQL 的执行频率 mysql> show status like "Com%"; 该命令可以查询 sql 命令的执行次数。 2、定位执行效率较低的 SQL 语句 定位执行效率较低的 S...
    99+
    2021-06-02
    MySQL数据库的SQL语句优化方法
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作