码迷,mamicode.com
首页 > 其他好文 > 详细

认识索引(摘录)

时间:2016-01-18 12:13:42      阅读:127      评论:0      收藏:0      [点我收藏+]

标签:

1、数据库中存储数据的基础单位就是页,数据库的页大小和操作系统类似,是指存放数据时,每一块的大小。比如一个1M的数据存放在数据库中时, 需要大概12块页来存放。如果是在操作系统上安装的数据库,最好将数据库页大小设置为操作系统页大小的倍数,才是最佳设置。数据库可以将数据从逻辑上分成页,磁盘的I/O操作就是在页级执行。

2、数据库页类型主要分如下三类:

  • 数据页
  • 大型对象数据类型
  • 索引页

(大型对象数据类型,比如text,image,nvarchar(max)等。)        

3、一个区包含8个页,它是管理空间的单位,分为如下两类

  • 统一区,由单个对象所有。
  • 混合区,最多可由八个对象共享。

 

4、非聚集索引与聚集索引之间的显著差别在于以下两点:

 

  • 基础表的数据行不按非聚集键的顺序排序和存储。
  • 非聚集索引的叶层是由索引页而不是由数据页组成。

  索引的优点:正确的索引会大大提高数据查询,对结果进行排序、分组的操作效率。
    索引的缺点:

  1. 创建索引需要额外的磁盘空间,索引最大一般为表大小的1.2倍左右。
  2. 在表数据修改时,例如增加,删除,更新,都需要维护索引表,这是需要系统开销的。
  3. 不合理的索引设计非但不能利于系统,反而会使系统性能下降。例如我们在一个创建有非聚集索引的列上做范围查询,此列的索引不会起到任何的优化效果,反而由于数据的修改而需要维护索引表,从而影响了对数据修改的性能。

    什么字段不适合创建索引?

  1. 不经常使用的列,这种索引带来缺点远大于带来的优点。
  2. 逻辑性的字段,例如性别字段等等,匹配的记录太多,和全表扫描比起来差不多。
  3. 字段内容特别大的字段,例如大字段等,这会大大增大索引所占用的空间以及索引维护时的速度。
  4. 涉及到计算的列,或者是需要利用数据库函数进行加工处理的列不应当创建索引。

联合索引:

  1. 查询条件中出现联合索引第一列,或者全部,则能利用联合索引.
  2. 条件列中只要条件相连在一起,无论前后,都会利用上联合索引.
  3. 查询条件中没有出现联合索引的第一列,而出现联合索引的第二列,或者第三列,都不会利用联合索引查询.

单一列索引:

  只要条件列中出现索引列,无论在什么位置,都能利用索引查询.

认识索引(摘录)

标签:

原文地址:http://www.cnblogs.com/Sunshine-CAIWEI/p/5138455.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!