数据库中创建索引是为了提升查询性能,但是建立索引也会降低修改性能。
建立索引也有不利的一面:
WHERE
子句的列上建立索引,加快条件的判断速度。当增加索引时,会提高检索性能,加快条件的判断速度,但是会降低修改性能。索引可以分为聚簇索引和非聚簇索引。聚簇索引通过树形结构重排表中的数据来提高数据的访问速度,非聚簇索引则通过维护表中的数据指针来提高数据的索引。
按序排列表中的数据,只有一种排列方法,笔者注
);UNIQUE
关键字明确维护,要么由一个内部的唯一标识符明确维护。这些标识符是系统自己使用的,用户不能访问。主键约束是一种保持数据完整性的逻辑,它限制表中的记录有相同的主键记录。在创建主键约束时,系统会自动创建一个唯一性的聚簇索引。在逻辑上,主键约束是一种重要的结构;但在物理结构上,与主键约束相对应的结构是唯一性的聚簇索引。换句话说,物理实现上其实不存在主键约束,只存在唯一性的聚簇索引。因此,当使用约束创建索引时,索引的类型和特征基本上都已经确定了,由用户定制的余地比价小。
当在表上定义主键或者唯一性键约束时,如果表中已经有了使用CREATE INDEX
语句创建的标准索引,那么主键约束或者唯一性键约束创建的索引将会覆盖之前创建的标准索引。这说明了主键约束或者唯一性见约束创建的索引优先级高于CREATE INDEX
语句创建的索引。
索引可以包含一个、两个、甚至更多个列。两个列或者以上列上建立的索引被称作复合索引。
WHERE
子句必须参考复合索引中的第一个列。