网站大量收购闲置独家精品文档,联系QQ:2885784924

数据库查询慢的原因.docVIP

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据库查询慢的原因 数据存储结构不合理 一般关系型数据库的物理存储分为堆和B+树,一般索引的存储结构为B+树,而数据表如果没有建立聚集索引的话,数据就是堆存储。这两种存储结构会很大程度上印象查询效率,B+树可以按照Key进行定向查找,而堆只能逐行扫描。这就像去图书馆找一本书,通过索引号可以快速找到其位置,而从书架上一排排看过去效率就很低。 这里需要说明一下,并非B+树的存储结构永远比堆存储结构好,至于什么情况下适合用堆存储,大家可以讨论一下。 查找效率低 我们知道非聚集索引只是存储了索引本身包含的字段以及聚集索引的字段(如果有的话),所以如果按照非聚集索引查找,很可能还需要二次查找,也就是非聚集索引只是提供了数据的实际存储地址,还需要额外的磁盘IO去实际存储地址查找,这就会在一定程度上影响查询性能。 查找效率还会受列存储和行存储的影响,列存储是按照表格中的同一列数据一起存储,而行存储是把表格中的数据一行一行的一起存储,这两种存储方式也会对查找效率造成影响。 磁盘IO过高 一般查询引擎都是按照数据块读取,只要某个数据块中有需要的数据,那么就会把这个数据块读取到内存中,所以如果数据过于分散,也会很大程度上影响查询效率,表现为磁盘IO很高。这方面涉及到索引碎片,索引重建,索引整理等技术。 另外数据的压缩比也会影响到磁盘的IO,理论上压缩比越高,数据读取的效率越高,相同情况下磁盘IO会低很多,但是数据压缩意味着存储时需要压缩,读取后需要解压,所以需要综合考虑,并非压缩比越高越好。 查询等待时间过长 有时候分析查询过程会发现,执行耗时很短,反而大部分时间都在排队,这种现象在多产品共用一个查询平台时最容易出现(请允许我先哭上三分钟......),导致这种情况一般是系统资源不足(内存不足等),导致无法为查询分配足够的资源执行。 查询等待还经常会因为锁等待导致,也就是当我想查这行数据时,其他人正在对这行数据进行编辑(排它锁),这时候我就需要等对方编辑完成才能读取。这方面根据实际场景可以考虑脏读等方式。 网络传输原因 数据在服务器端查询完成之后一般都需要通过网络传输到客户端,这时候如果一次返回的数据量过大,也会导致用户感觉查询变慢,这种情况需要应用端进行分页处理,或者对数据进行压缩传输。 执行计划不合理 因为索引碎片过大或者统计信息缺失等原因会造成数据库的查询引擎生成一些不够合理的查询计划,这时候推荐的做法是重建索引或者更新统计信息,当然也可以使用hint的方式强制更改查询计划,但这种方式很容易遗忘,引发后续其他情况下的查询问题。 系统资源不足或者被抢占 现在一般服务器都是采用虚拟化的技术进行资源隔离,但是很多虚拟化技术无法控制CPU的隔离,所以如果其他应用占用了大量CPU资源可能会导致数据库查询慢。 数据库的查询操作一般都现在内存中查找是否缓存了相应数据,如果没有则需要先把数据读取到内存中,这就导致了,当内存过低时,会造成查询命中率很低,需要频繁的到磁盘中读取数据,从而影响数据库的查询性能。 数据库是高内存,高IO,高CPU的应用,所以一般推荐一个物理机上不要开多个数据库服务器,避免相互抢占资源。 硬件配置不足 上面提到,数据库是高内存,高IO,高CPU的应用,所以服务器的硬件配置如果不够也会很大程度上影响数据库的查询性能,一般数据库应用都会对服务器的硬件配置有一定的要求,大家可以在安装时检查。

文档评论(0)

anma + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档