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

索引的使用原则.pdfVIP

  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文档。上传文档
查看更多
索引的优点: 这个显而易见, 正确的索引会大大提高数据查询, 对结果进行排序、分组的操 作效率。 索引的缺点 : 优点显而易见,同样缺点也是显而易见 : 1 :创建索引需要额外的磁盘空间,索引最大一般为表大小的 1.2 倍左右。 2 :在表数据修改时,例如增加,删除,更新,都需要维护索引表,这是需要系统开销 的。 3 :不合理的索引设计非但不能利于系统,反而会使系统性能下降。例如我们在一个创 建有非聚集索引的列上做范围查询, 此列的索引不会起到任何的优化效果, 反而由于数据的 修改而需要维护索引表 , 从而影响了对数据修改的性能。 实际例子:还是拿前两篇文章的学生表来讲吧,要查询成绩在 50 分以上的学生信 息 select * from student where score50 。学生表包含了 100000 行记录,而且学分是随 机生成的 , 这样从数据量以及数据分布上都有一定的保障。 第一种情况:学生表有索引。 1 :存在聚集索引,但聚集索引不在学分上 , 这里只分析学分不是聚集索引的情况。 (1): 学分上没有索引。 此时 SQL会通过聚集索引来查找数据, 这点估计大家都会 知道。 (2): 学分上有索引。这种情况, SQL会使用上学分上的索引吗?这个问题估计 不是每个人都能回答正确的。既然学分上有索引,而 where 中又有此列,理应使用了索引, 但实际情况并没有使用索引。 因为出现了范围查找, 如果一个索引一个索引的比较, 在性能 上比起直接按聚集索引查找全部数据后再过滤来的差。 那学分上的索引什么时候 SQL 会优 先考虑呢?当 score 指定为一个具体值时, 就能使用学分索引查找了。 从下图的 SQL执行计 划可以得知。 2: 不存在聚集索引。 (1): 在学分上没有索引,其它字段有索引,这种情况就会出现表扫描。 (2): 在学分上有索引, 是否会按照学分上的索引进行查找呢?由于上面的表数据 量也不少,一般会认为 SQL不会采用表扫描,因为会查找全部记录,但实际情况表明 SQL 对于范围查询也行采用表扫描而不是按学生索引查询。 我们也可以强制 SQL按学分查询, 于 是有下面的 SQL执行计划比较, 我们可以清楚的看出, 强制使用学分做为索引查询比表有哪些信誉好的足球投注网站 的性能要差很多。 第二种情况:学生表没有索引。这个情况没有分析的价值。 什么字段不适合创建索引? 1: 不经常使用的列,这种索引带来缺点远大于带来的优点。 2: 逻辑性的字段,例如性别字段等等 , 匹配的记录太多,和表扫描比起来不相上下。 3: 字段内容特别大的字段,例如 text 等,这会大大增大索引所占用的空间以及索引更新 时的速度。 我们说 SQL在维护索引时要消耗系统资源, 那么 SQL维护索引时究竟消耗了什么资源?会 产生哪些问题?究竟怎样才能优化字段的索引? 第一:当数据页达到了 8K( 数据页最大为 8K) 容量,如此时发生插入或更新数据的操作, 将导致页的分裂。 1 、聚集索引的情况下:聚集索引将被插入和更新的行指向特定的页,该页由聚集索引关 键字决定; 2 、只有堆的情况下:有空间就可以插入新的行,对行数据的更新需要更多的空间,如果 大于了当前页的可用空间, 行就被移到新的页中, 且在原位置留下一个转发指针, 指向被移 动的新行,如果具有转发指针的行又被移动了,

文档评论(0)

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

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

1亿VIP精品文档

相关文档