数据库的类似于图书的目录,索引允许数据库程序的查找数据库中的数据,而不必扫描这个数据库.
SQL server 中管理的最小单位是页,为8K的空间.数据的存放是没有逻辑顺序的,成为,当数据堆满一些,数据库就存放打另外一页.
索引可以提供系统的性能.
1.
唯一索引可以保证行的唯一
2.
加快检索速度
3.
加速表之间的连接,实现数据的参照完整性
4.
order by/group by
5.
使用索引进行查询的过程使用优化隐藏器,提供系统性能
但是索引的创建和维护耗费时间,索引需要占用物理空间,当表进行insert,update,delete操作时,需要堆index进行维护,降低了数据库的维护速度.
创建索引的原则
1.
在经常进行搜索的列上创建
2.
主键
3.
外键
4.
进行排序的列上
5.
需要根据范围进行搜索的列上
6.
用于where子句的列上
不创建索引的原则:
1.
在查询中很少用到和参考的列
2.
值很少的列
3.
定义为text,image,bit的列
4.
需要update的性能要求大于对select的性能要求.
索引类型:
1.
聚簇索引:数据库表的物理顺序和索引的顺序相同
a)
树状结构,叶子结点为数据页
b)
每个表只有一个
c)
表的物理顺序和索引行的物理顺序相同
d)
unique
e)
平均大小为表的5%
f)
创建索引时临时使用当前数据库的磁盘空间,聚簇所需的临时空间是表的1.2倍
2.
非聚簇索引:不同的
a)
缺省情况下为非聚簇
b)
一个表最多为249
c)
索引页只包含索引的关键字,不包含实际数据