广告
返回顶部
首页 > 资讯 > 数据库 >SQL性能优化有哪些措施
  • 299
分享到

SQL性能优化有哪些措施

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

这篇文章主要介绍“sql性能优化有哪些措施”,在日常操作中,相信很多人在SQL性能优化有哪些措施问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”SQL性能优化有哪些措施”的疑惑

这篇文章主要介绍“sql性能优化有哪些措施”,在日常操作中,相信很多人在SQL性能优化有哪些措施问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”SQL性能优化有哪些措施”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

  1.查询的模糊匹配

  尽量避免在一个复杂查询里面使用LIKE'%parm1%'——红色标识位置的百分号会导致相关列的索引无法使用,最好不要用。

  解决办法:

  其实只需要对该脚本略做改进,查询速度便会提高近百倍。改进方法如下:

  a、修改前台程序——把查询条件的供应商名称一栏由原来的文本输入改为下拉列表,用户模糊输入供应商名称时,直接在前台就帮忙定位到具体的供应商,这样在调用后台程序时,这列就可以直接用等于来关联了。

  b、直接修改后台——根据输入条件,先查出符合条件的供应商,并把相关记录保存在一个临时表里头,然后再用临时表去做复杂关联。

  2.索引问题

  在做性能跟踪分析过程中,经常发现有不少后台程序的性能问题是因为缺少合适索引造成的,有些表甚至一个索引都没有。这种情况往往都是因为在设计表时,没去定义索引,而开发初期,由于表记录很少,索引创建与否,可能对性能没啥影响,开发人员因此也未多加重视。然一旦程序发布到生产环境,随着时间的推移,表记录越来越多。这时缺少索引,对性能的影响便会越来越大了。

  法则:不要在建立的索引的数据列上进行下列操作:

  避免对索引字段进行计算操作避免在索引字段上使用not,<>,!=避免在索引列上使用ISNULL和ISNOTNULL避免在索引列上出现数据类型转换避免在索引字段上使用函数避免建立索引的列中使用空值

  3.复杂操作

  部分UPDATE、SELECT语句写得很复杂(经常嵌套多级子查询)——可以考虑适当拆成几步,先生成一些临时数据表,再进行关联操作。

  4.update

  同一个表的修改在一个过程里出现好几十次,如:

  updatetable1setcol1=...wherecol2=...;updatetable1setcol1=...wherecol2=......

  这类脚本其实可以很简单就整合在一个UPDATE语句来完成(前些时候在协助xxx项目做性能问题分析时就发现存在这种情况)

  5.在可以使用UNIONALL的语句里,使用了UNioN

  UNION因为会将各查询子集的记录做比较,故比起UNIONALL,通常速度都会慢上许多。一般来说,假如使用UNIONALL能满足要求的话,务必使用UNIONALL。还有一种情况大家可能会忽略掉,就是虽然要求几个子集的并集需要过滤掉重复记录,但由于脚本的特殊性,不可能存在重复记录,这时便应该使用UNIONALL,如xx模块的某个查询程序就曾经存在这种情况,见,由于语句的特殊性,在这个脚本中几个子集的记录绝对不可能重复,故可以改用UNIONALL)。

  SQL性能优化的措施有哪些

  6.在WHERE语句中,尽量避免对索引字段进行计算操作

  这个常识相信绝大部分开发人员都应该知道,但仍有不少人这么使用,我想其中一个最主要的原因可能是为了编写写简单而损害了性能,那就不可取了。9月份在对XX系统做性能分析时发现,有大量的后台程序存在类似用法,如:wheretrunc(create_date)=trunc(:date1),虽然已对create_date字段建了索引,但由于加了TRUNC,使得索引无法用上。此处正确的写法应该是wherecreate_date>=trunc(:date1)andcreate_date<>或者是wherecreate_datebetweentrunc(:date1)andtrunc(:date1)+1-1/(24*60*60)。

  注意:因between的范围是个闭区间(greaterthanorequaltolowvalueandlessthanorequaltohighvalue.),故严格意义上应该再减去一个趋于0的小数,这里暂且设置成减去1秒(1/(24*60*60)),假如不要求这么精确的话,可以略掉这步。

  7.对Where语句的法则

  7.1避免在WHERE子句中使用in,notin,or或者having。

  可以使用exist和notexist代替in和notin。

  可以使用表链接代替exist。Having可以用where代替,假如无法代替可以分两步处理。

  例子

  SELECT*FROMORDERSWHERECUSTOMER_NAMENOTIN(SELECTCUSTOMER_NAMEFROMCUSTOMER)

  优化

  SELECT*FROMORDERSWHERECUSTOMER_NAMEnotexist(SELECTCUSTOMER_NAMEFROMCUSTOMER)

  7.2不要以字符格式声明数字,要以数字格式声明字符值。(日期同样)否则会使索引无效,产生全表扫描。

  例子使用:

  SELECTemp.ename,emp.jobFROMempWHEREemp.empno=7369;

  --不要使用:

  SELECTemp.ename,emp.jobFROMempWHEREemp.empno='7369'

  8.对Select语句的法则

  在应用程序、包和过程中限制使用select*fromtable这种方式。看下面例子

  --使用

  SELECTempno,ename,cateGoryFROMempWHEREempno='7369'

  --而不要使用

  SELECT*FROMempWHEREempno='7369'

  9.排序

  避免使用耗费资源的操作,带有DISTINCT,UNION,MINUS,INTERSECT,ORDERBY的SQL语句会启动SQL引擎执行,耗费资源的排序(SORT)功能.DISTINCT需要一次排序操作,而其他的至少需要执行两次排序。

  10.临时表

  慎重使用临时表可以极大的提高系统性能。

到此,关于“SQL性能优化有哪些措施”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

您可能感兴趣的文档:

--结束END--

本文标题: SQL性能优化有哪些措施

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SQL性能优化有哪些措施
    这篇文章主要介绍“SQL性能优化有哪些措施”,在日常操作中,相信很多人在SQL性能优化有哪些措施问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”SQL性能优化有哪些措施”的疑惑...
    99+
    2022-10-18
  • sql注入防范措施有哪些
    SQL注入是一种常见的网络攻击方式,为了防范SQL注入攻击,可以采取以下措施:1. 输入验证:对用户输入的数据进行严格的验证,确保输...
    99+
    2023-09-05
    sql
  • 404页面常用的优化措施有哪些
    常见的404页面优化措施有以下几种让用户可以返回上一个页面当用户访问到404页面时,用户会回想到上一个页面的内容,因此在页面中添加一个返回上一页的控制键,可以供用户持续的在网站中浏览页面。提供搜索功能,并赋予其他选择项用户访问到404页面后...
    99+
    2022-10-18
  • java sql注入防范措施有哪些
    Java中防止SQL注入攻击的措施主要包括:1. 使用预编译语句或参数化查询:使用PreparedStatement对象来执行SQL...
    99+
    2023-08-24
    java sql
  • SQL性能优化技巧有哪些
    这篇文章给大家分享的是有关SQL性能优化技巧有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1.查询的模糊匹配尽量避免在一个复杂查询里面使用 LIKE '%parm1...
    99+
    2022-10-19
  • sql注入漏洞防御措施有哪些
    sql注入漏洞防御措施有:对输入进行严格的转义和过滤,例如://转义示例function escape($link, $data){if(is_ string($data)){return mysql...
    99+
    2022-10-21
  • sql注入攻击的防范措施有哪些
    防范SQL注入攻击的措施有以下几种:1. 使用参数化查询(Prepared Statements):使用参数化查询可以将用户输入的数...
    99+
    2023-08-23
    SQL
  • Oracle SQL性能优化的方法有哪些
    本篇内容主要讲解“Oracle SQL性能优化的方法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Oracle SQL性能优化的方法有哪些”吧!1. SQ...
    99+
    2022-10-19
  • SQL语句性能优化的策略有哪些
    这篇文章主要介绍“SQL语句性能优化的策略有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“SQL语句性能优化的策略有哪些”文章能帮助大家解决问题。52 条 SQL 语句性能优化策略:对查询进行优...
    99+
    2023-06-28
  • PHP7有哪些性能优化
    这篇文章主要介绍“PHP7有哪些性能优化”,在日常操作中,相信很多人在PHP7有哪些性能优化问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PHP7有哪些性能优化”的疑惑有所帮助!接下来,请跟着小编一起来学习吧...
    99+
    2023-06-17
  • PHP-FPM性能优化:提高网站安全性和稳定性的措施
    随着互联网发展的迅猛,网站的性能优化变得越来越重要。在PHP开发中,PHP-FPM(FastCGI Process Manager)是一种常见的PHP解决方案,用于提高性能和网站的稳定性。但是,仅仅安装和配置PHP-FPM是不够的,还需要采...
    99+
    2023-10-21
    性能优化 php-fpm 安全性
  • 提高Java代码可重用性的措施有哪些
    这篇文章主要介绍了提高Java代码可重用性的措施有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇提高Java代码可重用性的措施有哪些文章都会有所收获,下面我们一起来看看吧。措施一:改写类的实例方法 通过类继...
    99+
    2023-06-03
  • Mysql高性能优化技能有哪些
    这篇文章主要介绍Mysql高性能优化技能有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!数据库命令规范所有数据库对象名称必须使用小写字母并用下划线分割所有数据库对象名称禁止使用m...
    99+
    2022-10-18
  • 美国云主机提高安全性的措施有哪些
    美国云主机提高安全性的措施有:1、做好物理安全措施,比如避免云主机出现人为损坏以及受环境、温度、湿度、供电等因素影响;2、做好网络安全措施,比如制定防御恶意网络攻击以及数据窃取的安全策略;3、做好数据安全措施,比如定期对美国云主机进行数据备...
    99+
    2022-10-11
  • 提高香港服务器安全性的措施有哪些
    提高香港服务器安全性的措施有:1、定期安装或更新香港服务器的操作系统、软件以及补丁;2、对香港服务器安装防火墙,并配置防御规则;3、为香港服务器安装防病毒和防恶意软件扫描程序;4、采用为DDoS防护设计的香港高防服务器;5、定期对香港服务器...
    99+
    2022-10-19
  • SQL优化技巧有哪些
    这篇文章主要讲解了“SQL优化技巧有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SQL优化技巧有哪些”吧!一、索引优化索引的数据结构是 B+Tree,...
    99+
    2022-10-19
  • 有哪些SQL优化方法
    这篇文章主要介绍“有哪些SQL优化方法”,在日常操作中,相信很多人在有哪些SQL优化方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”有哪些SQL优化方法”的疑惑有所帮助!接...
    99+
    2022-10-18
  • SQL优化原则有哪些
    这篇文章将为大家详细讲解有关SQL优化原则有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、问题的提出 在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL...
    99+
    2022-10-19
  • SQL优化方案有哪些
    这篇文章主要讲解了“SQL优化方案有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SQL优化方案有哪些”吧!一、避免进行null判断 &nbs...
    99+
    2022-10-19
  • SQL优化方法有哪些
    这篇文章主要讲解了“SQL优化方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SQL优化方法有哪些”吧!一、避免进行null判断 &nbs...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作