(1)索引:通过在表字段中建立索引可提高查询优化,确保数据的唯一性,以及可以对全文索引字段中的大量文本的搜索进行优化。
(2)主键索引(primary key):主要作用是确定数据表里一条特定的数据记录的位置。数据表会根据主键的唯一索引性来唯一标示每条记录。
(3)唯一索引(unique)主要是为了避免数据出现重复
(4)区别:每个表中只能有一个主键索引,但可以有多个唯一索引。
(优点):创建索引可以大大提高系统的性能:
(1)保证数据库表中每一行唯一性.
(2)加快数据检索速度,最主要的原因。
(3)加速表和表之间连接
(4)在使用分组和排序 子句进行数据检索时,显著减少查询中分组和排序时间。
(5)查询使用优化隐藏器,提高系统性能。
增加索引也有许多不利的方面:
(1)创建和维护索引要耗费时间,随着数据量的增加而增加。
(2)占物理空间,除了数据表占数据空间之外,索引还要占一定的物理空间,如果要建立聚簇索引,空间就会更大。
(3)当对表数据进行增删改时,索引也要动态维护,降低数据维护速度。
在哪建索引?
(1)经常需要搜索的列,加快搜索的速度;
(2)主键列,强制该列唯一性和组织表中数据排列结构
(3)经常连接列(外键)加快连接速度(4)范围搜索列,因索引已排序,范围是连续
(5)排序列,因索引已排序,可利用索引排序加快时间;
(6)WHERE子句列,加快条件判断。
为什么要创建索引呢?
这是因为,创建索引可以大大提高系统的性能。
第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。
第二,可以大大加快数据的检索速度,这也是创建索引的最主要的原因。
第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。
第四,在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。
第五,通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。
也许会有人要问:增加索引有如此多的优点,为什么不对表中的每一个列创建一个索引呢?这种想法固然有其合理性,然而也有其片面性。虽然,索引有许多优点,但是,为表中的每一个列都增加索引,是非常不明智的。这是因为,增加索引也有许多不利的一个方面。
第一,创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。
第二,索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大。
第三,当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。