一、定义
索引是一个单独的、物理的数据库结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。
二、索引类型
根据数据库的功能,可以在数据库设计器中创建三种索引:唯一索引、主键索引和聚集索引。
- 唯一索引
唯一索引是不允许其中任何两行具有相同索引值的索引。
当现有数据中存在重复的键值时,大多数数据库不允许将新创建的唯一索引与表一起保存。数据库还可 能防止添加将在表中创建重复键值的新数据。
- 主键索引
数据库表经常有一列或列组合,其值唯一标识表中的每一行。该列称为表的主键。
在数据库关系图中为表定义主键将自动创建主键索引,主键索引是唯一索引的特定类型。该索引要求主 键中的每个值都唯一。当在查询中使用主键索引时,它还允许对数据的快速访问。
- 聚集索引
该索引中键值的逻辑顺序决定了表中相应行的物理顺序。
聚集索引确定表中数据的物理顺序。聚集索引类似于电话簿,按姓氏排列数据。由于聚集索引规定数据 在表中的物理存储顺序,因此一个表只能包含一个聚集索引。但该索引可以包含多个列(组合索引), 就像电话簿按姓氏和名字进行组织一样。
聚集索引对于那些经常要搜索范围值的列特别有效。
当索引值唯一时,使用聚集索引查找特定的行也很有效率。
三、索引优缺点
- 优点
1.大大加快数据的检索速度;
2.创建唯一性索引,保证数据库表中每一行数据的唯一性;
3.加速表和表之间的连接;
4.在使用分组和排序子句进行数据检索时,可以显著减少查询中分组和排序的时间。
- 缺点
1.索引需要占物理空间。
2.当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,降低了数据的维护速度。
3.在创建索引之前,您必须确定要使用哪些列以及要创建的索引类型。
四、索引的建立
创建索引命令:
CREATE INDEX index_name ON table_name;
单列索引:
CREATE INDEX index_name ON table_name (column_name);
唯一索引:
CREATE INDEX index_name on table_name (column_name);
复合索引:
CREATE INDEX index_name on table_name (column1, column2);
隐式索引:
隐式索引的索引为 当一个对象被创建时自动创建的数据库服务器。索引自动创建主键约束和唯一性约束。
删除索引命令:
DROP INDEX index_name;
五、注意事项
创建索引准则:
1.小表上的索引不应该使用。
2.有频繁的,大批量的更新或插入操作的表。
3.索引不应该使用的列中包含了大量的NULL值。
4.经常操作的列不应该被编入索引。
确定索引的有效性:
1.检查查询的 WHERE 和 JOIN 子句。在任一子句中包括的每一列都是索引可以选择的对象。
2.对新索引进行试验以检查它对运行查询性能的影响。
3.考虑已在表上创建的索引数量。最好避免在单个表上有很多索引。
4.检查已在表上创建的索引的定义。最好避免包含共享列的重叠索引。
5.检查某列中唯一数据值的数量,并将该数量与表中的行数进行比较。比较的结果就是该列的可选择性,这有助于确定该列是否适合建立索引,如果适合,确定索引的类型。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!