索引

  1. 聚集索引

    表中储存的数据按照索引的顺序储存,检索效率比普通索引高,索引暂用硬盘存储空间小(1%左右),但对数据新增/修改/删除的速度影响较大(降低)。

    特点:

    无索引,数据无序。
    有索引,数据和索引同序。
    数据会根据索引键的顺序重新排列数据。
    一个表只能有一个索引。
    叶节点的指针指向的数据也在同一位置存储。
    TSQL语法:create CLUSTERED INDEX idxempID ON emp(empID)

  2. 非聚集索引

    不影响表中的数据存储顺序,检索效率比聚集索引低,索引占用硬盘空间大(30%~40%),对数据新增/修改/删除的速度影响较少。
    特点:
    一个表可以最多创建249个非聚集索引。
    先建聚集索引才能创建非聚集索引。
    数据与非聚集索引在不同位置。
    非聚集索引在叶节点上存储,在叶节点上有一个“指针”直接指向要查询的数据区域。
    数据不会根据非聚集索引键的顺序重新排列数据。
    TSQL语法:create NONCLUSTERED INDEX idximpID ON emp(empID)

  3. 对于索引的错误观点:
    主键就是聚集索引。
    只要建立索引就能显著提高查询速度。
    把所有需要提高查询速度的字段都加进聚集索引,以提高查询速度。

  4. 一般来说正确规则:
    用聚集索引比用非聚集索引的主键速度快。
    用聚集索引比用一般的主键做order by时速度快,特别是在小数据量情况下。
    使用聚集索引内的时间段,搜索时间会按数据占整个数据表的百分比成比例减少,而无论聚集索引使用了多少个。



你可能感兴趣的:(create,影响,空间,左右)