索引使用法则
在使用索引字段作为条件时,如果该索引是复合索引,那么必须使用到该索引中的第一个字段作为条件时才能保证系统使用该索引,否则该索引将不会被使用,并且应尽可能的让字段顺序与索引顺序相一致。
应尽可能的避免更新 clustered(聚合) 索引数据列,因为 clustered索引数据列的顺序就是表记录的物理存储顺序,一旦该列值改变将导致整个表记录的顺序的调整,会耗费相当大的资源。
创建索引的标准
①该列用于频繁搜索;②该列用于对数据进行排序;③该列中重复值少;④该列频繁出现在where中。
不适合建立索引的标准
①列中重复值多;②表中数据少(为小型表建立索引是不必要的,因为索引的时间可能比检索表的时间还要长);③频繁进行插入操作的列(因为每次新添加了数据,索引都需要重新维护)。
不要在建立的索引的数据列上进行下列操作
◆避免对索引字段进行计算操作
◆避免在索引字段上使用not,<>,!=
◆避免在索引列上使用IS NULL和IS NOT NULL
◆避免在索引列上出现数据类型转换
◆避免在索引字段上使用函数
◆避免建立索引的列中使用空值。
在使用索引字段作为条件时,如果该索引是复合索引,那么必须使用到该索引中的第一个字段作为条件时才能保证系统使用该索引,否则该索引将不会被使用,并且应尽可能的让字段顺序与索引顺序相一致。
应尽可能的避免更新 clustered(聚合) 索引数据列,因为 clustered索引数据列的顺序就是表记录的物理存储顺序,一旦该列值改变将导致整个表记录的顺序的调整,会耗费相当大的资源。
创建索引的标准
①该列用于频繁搜索;②该列用于对数据进行排序;③该列中重复值少;④该列频繁出现在where中。
不适合建立索引的标准
①列中重复值多;②表中数据少(为小型表建立索引是不必要的,因为索引的时间可能比检索表的时间还要长);③频繁进行插入操作的列(因为每次新添加了数据,索引都需要重新维护)。
不要在建立的索引的数据列上进行下列操作
◆避免对索引字段进行计算操作
◆避免在索引字段上使用not,<>,!=
◆避免在索引列上使用IS NULL和IS NOT NULL
◆避免在索引列上出现数据类型转换
◆避免在索引字段上使用函数
◆避免建立索引的列中使用空值。