返回顶部
首页 > 资讯 > 数据库 >数据库SQL调优的方式有哪些
  • 644
分享到

数据库SQL调优的方式有哪些

2024-04-02 19:04:59 644人浏览 八月长安
摘要

小编给大家分享一下数据库sql调优的方式有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!方式:1、创建索引时,尽量避免全表扫

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

方式:1、创建索引时,尽量避免全表扫描;2、避免在索引上使用计算;3、尽量使用参数化SQL;4、尽量将多条SQL语句压缩到一句SQL中;5、用where字句替换HAVING字句;6、连接多个表时,使用表的别名;7、尽量避免使用游标等等。

教程操作环境:windows7系统、Mysql8版本、Dell G3电脑。

一.创建索引

1、要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引

2、(1)在经常需要进行检索的字段上创建索引,比如要按照表字段username进行检索,那么就应该在姓名字段上创建索引,如果经常要按照员工部门和员工岗位级别进行检索,那么就应该在员工部门和员工岗位级别这两个字段上创建索引。

(2)创建索引给检索带来的性能提升往往是巨大的,因此在发现检索速度过慢的时候应该首先想到的就是创建索引。

(3)一个表的索引数最好不要超过6个,若太多则应考虑一些不常使用到的列上建的索引是否有 必要。索引并不是越多越好,索引固然可以提高相应的 select 的效率,但同时也降低了 insert 及 update 的效率,因为 insert 或 update 时有可能会重建索引,所以怎样建索引需要慎重考虑,视具体情况而定。

二.避免在索引上使用计算

在where字句中,如果索引列是计算或者函数的一部分,DBMS的优化器将不会使用索引而使用全表查询,函数
属于计算的一种,同时在in和exists中通常情况下使用EXISTS,因为in不走索引
效率低:

 select * from user where salary*22>11000(salary是索引列)

效率高:

 select * from user where salary>11000/22(salary是索引列)

三.使用预编译查询

程序中通常是根据用户的输入来动态执行SQL,这时应该尽量使用参数化SQL,这样不仅可以避免SQL注入漏洞

攻击,最重要数据库会对这些参数化SQL进行预编译,这样第一次执行的时候DBMS会为这个SQL语句进行查询优化

并且执行预编译,这样以后再执行这个SQL的时候就直接使用预编译的结果,这样可以大大提高执行的速度。

四.尽量将多条SQL语句压缩到一句SQL中

每次执行SQL的时候都要建立网络连接、进行权限校验、进行SQL语句的查询优化、发送执行结果,这个过程
是非常耗时的,因此应该尽量避免过多的执行SQL语句,能够压缩到一句SQL执行的语句就不要用多条来执行。

五.用where字句替换HAVING字句

避免使用HAVING字句,因为HAVING只会在检索出所有记录之后才对结果集进行过滤,而where则是在聚合前
刷选记录,如果能通过where字句限制记录的数目,那就能减少这方面的开销。HAVING中的条件一般用于聚合函数
的过滤,除此之外,应该将条件写在where字句中。

六.使用表的别名

当在SQL语句中连接多个表时,请使用表的别名并把别名前缀于每个列名上。这样就可以减少解析的时间并减
少哪些友列名歧义引起的语法错误。

七.用uNIOn all替换union

当SQL语句需要union两个查询结果集合时,即使检索结果中不会有重复的记录,如果使用union这两个结果集
同样会尝试进行合并,然后在输出最终结果前进行排序,因此如果可以判断检索结果中不会有重复的记录时候,应
该用union all,这样效率就会因此得到提高。

八.考虑使用“临时表”暂存中间结果

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

九.只在必要的情况下才使用事务begin translation

SQL Server中一句SQL语句默认就是一个事务,在该语句执行完成后也是默认commit的。其实,这就是begin tran的一个最小化的形式,好比在每句语句开头隐含了一个begin tran,结束时隐含了一个commit。
有些情况下,我们需要显式声明begin tran,比如做“插、删、改”操作需要同时修改几个表,要求要么几个表都修改成功,要么都不成功。begin tran 可以起到这样的作用,它可以把若干SQL语句套在一起执行,最后再一起commit。 好处是保证了数据的一致性,但任何事情都不是完美无缺的。Begin tran付出的代价是在提交之前,所有SQL语句锁住的资源都不能释放,直到commit掉。
可见,如果Begin tran套住的SQL语句太多,那数据库的性能就糟糕了。在该大事务提交之前,必然会阻塞别的语句,造成block很多。
Begin tran使用的原则是,在保证数据一致性的前提下,begin tran 套住的SQL语句越少越好!有些情况下可以采用触发器同步数据,不一定要用begin tran。

十.尽量避免使用游标

尽量避免向客户端返回大数据量,若数据量过大,应该考虑相应需求是否合理。因为游标的效率较差,如果游标操作的数据超过1万行,那么就应该考虑改写。

十一.用varchar/nvarchar 代替 char/nchar

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

您可能感兴趣的文档:

--结束END--

本文标题: 数据库SQL调优的方式有哪些

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

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

猜你喜欢
  • 数据库SQL调优的方式有哪些
    小编给大家分享一下数据库SQL调优的方式有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!方式:1、创建索引时,尽量避免全表扫...
    99+
    2024-04-02
  • 数据库SQL调优的几种方式汇总
    目录char  vs varchar开启慢查询日志来定位查询慢的语句合理使用关键字优化查询缓存适当使用索引  分割数据表非规范化的方式总结 最近在复习SQL调优,总结了下主要有以下几种方式:...
    99+
    2024-04-02
  • sql servre有哪些数据库备份方式
    今天就跟大家聊聊有关sql servre有哪些数据库备份方式,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一:sql server数据库四种备份方式...
    99+
    2024-04-02
  • mysql调优的方式有哪些
    有以下几种常用的MySQL调优方式:1. 优化查询语句:通过分析和优化查询语句,使用合适的索引、避免全表扫描、减少JOIN操作等,提...
    99+
    2023-09-05
    mysql
  • SQL数据库的优化原则有哪些
    这期内容当中小编将会给大家带来有关SQL数据库的优化原则有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。关于SQL数据库优化的原则主要可以从以下几个方面着手:设计方面...
    99+
    2024-04-02
  • 数据库优化的方法有哪些
    这篇文章主要介绍数据库优化的方法有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!数据库优化的几种方式分别是:1、选取最适用的字段属性;2、使用连接来代替子查询;3、使用联合来代替...
    99+
    2024-04-02
  • sql中数据去重的方式有哪些
    在SQL中,可以使用以下方式对数据进行去重:1. 使用DISTINCT关键字:SELECT DISTINCT column_...
    99+
    2023-09-23
    sql
  • Oracle数据库中的SQL优化技术有哪些
    使用索引:通过合适地创建索引,可以加快数据库查询的速度。需要根据查询的字段和条件来选择合适的索引。 优化查询语句:尽量避免使...
    99+
    2024-04-09
    Oracle SQL
  • 数据库备份的方式有哪些
    数据库备份的方式有以下几种:1. 完全备份:将整个数据库的所有数据和对象都备份。2. 增量备份:只备份自上次备份以来发生变化的数据。...
    99+
    2023-08-30
    数据库
  • 有哪些方法可以优化SQL Server数据库查询
    本篇内容介绍了“有哪些方法可以优化SQL Server数据库查询”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所...
    99+
    2024-04-02
  • 云数据库SQL Server租用有哪些优势
    云数据库SQL Server租用的优势包括:1. 灵活性:云数据库SQL Server提供了按需使用的租用模式,可以根据业务需求快速...
    99+
    2023-09-21
    云数据库 SQL Server
  • php优化数据库的方法有哪些
    这篇文章运用简单易懂的例子给大家介绍php优化数据库的方法有哪些,代码非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。php优化数据库的方法:1、选取最适用的字段属性;2、使用连接JOIN来代...
    99+
    2024-04-02
  • mysql数据库优化的方法有哪些
    MySQL数据库优化的方法有以下几种: 1.索引优化:通过合理设计和使用索引来提高查询效率。 选择合适的索引列:选择经常被查询的列...
    99+
    2024-04-09
    mysql
  • 数据库连接方式有哪些
    小编给大家分享一下数据库连接方式有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在建立Oracle数据库的时候,应该会在数据...
    99+
    2024-04-02
  • 优秀的数据库有哪些
    本篇内容介绍了“优秀的数据库有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、MySQLMySQL历...
    99+
    2024-04-02
  • 分布式数据库TDSQL有哪些优势
    TDSQL(TiDB)是一款分布式数据库,它具有以下优势:1. 水平扩展能力:TDSQL可以水平扩展到数百个节点,以满足高并发和大规...
    99+
    2023-09-21
    数据库 TDSQL
  • asp连接sql数据库的方法有哪些
    小编给大家分享一下asp连接sql数据库的方法有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!asp连接sql数据库的方法有...
    99+
    2024-04-02
  • SQL中CBO优化方式有哪些
    这篇文章给大家分享的是有关SQL中CBO优化方式有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一条查询语句的处理包括语法分析、语句优化和查询执行三个阶段。在语句优化阶段,O...
    99+
    2024-04-02
  • 常用的sql数据库有哪些
    这篇文章主要介绍了常用的sql数据库有哪些,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。常用的sql数据库有:mysql 、SQL Server...
    99+
    2024-04-02
  • SQL Server数据库sql优化注意事项都有哪些
    SQL Server数据库sql优化注意事项都有哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。今天主要分享下sqlserver数据库在做s...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作