3使用索引的代价 为每一列都建立索引是不明智的,因为使用 索引要付出一定的代价 ◇索引需要占用数据表以外的物理存储 空间。例如,要建立一个聚集索引,需要大 约1.2倍于数据大小的空间。 ●创建索引和维护索引要花费一定的时 ●当对表进行更新操作时,索引需要被 重建。这样降低了数据的维护速度
3.使用索引的代价 为每一列都建立索引是不明智的,因为使用 索引要付出一定的代价: ●索引需要占用数据表以外的物理存储 空间。例如,要建立一个聚集索引,需要大 约1.2倍于数据大小的空间。 ●创建索引和维护索引要花费一定的时 间。 ●当对表进行更新操作时,索引需要被 重建,这样降低了数据的维护速度
4建立索引的原则 般原则是 ●主键列上一定要建立索引。 ●外键列可以建索引。 ●在经常查询的字段上最好建立索引。 对于那些查询中很少涉及的列、重复值比 较多的列不要建索引。 对于定义为text, Image和Bit数据类型的列 上不要建立索引
4.建立索引的原则 一般原则是: ●主键列上一定要建立索引。 ●外键列可以建索引。 ●在经常查询的字段上最好建立索引。 ●对于那些查询中很少涉及的列、重复值比 较多的列不要建索引。 对于定义为text,Image和Bit数据类型的列 上不要建立索引
7.2索引的分类 在 SQL Server数据库中,根据索引 的存储结构不同将其分为两类:聚集 索引和非聚集索引。 7.2.1聚集索引 聚集索引是指表中数据行的物理存储 顺序与索引顺序完全相同。每个表只能 创建一个聚集索引
7.2 索引的分类 在SQL Server数据库中,根据索引 的存储结构不同将其分为两类:聚集 索引和非聚集索引。 7.2.1 聚集索引 聚集索引是指表中数据行的物理存储 顺序与索引顺序完全相同。每个表只能 创建一个聚集索引
sysindexes id indid =1 root 根节点 下一个 索引行 中间级 一个一 ~■下 个一 索弓l行 索弓行 索弓行 节点数据页 个一个 个下 数据行 数据行 数据行 图71聚集索引的结构示意图
图7.1 聚集索引的结构示意图
722非聚集索引 非聚集索引与聚集索引一样有B树 结构。但是有两个重大差别 ◇数据行不按非聚集索引键的顺序排 序和存储。 ○非聚集索引的叶层不包含数据页
7.2.2 非聚集索引 非聚集索引与聚集索引一样有 B 树 结构,但是有两个重大差别: ●数据行不按非聚集索引键的顺序排 序和存储。 ●非聚集索引的叶层不包含数据页