索引就是排好序的,帮我们快速查找的数据结构。简单来讲,索引就是一种将数据库中的记录按照特殊形式存储的数据结构。通过索引,能够显著的提高数据查询的效率,从而提升服务器的性能。
索引的优点与缺点
优点:
(1)提高数据检索的效率,降低数据库的IO成本
(2)通过索引对数据进行排序,降低了数据排序的成本,降低了CPU的消耗
缺点:
(1)创建索引和维护索引需要耗费时间,这种时间随着数据量的增加而增加
(2)索引需要物理空间,除了数据表占用数据空间之外,每一个索引还要占用一定的物理空间
(3)当对表中的数据进行增加、删除和修改的时候,索引也需要动态的维护,降低了数据的维护速度。
创建索引的原则
(1)在经常需要搜索的列上创建索引,可以加快搜索的速度
(2)在作为主键的列上创建索引,强制该列的唯一性和表中数据的排列结构
(3)在经常用在连接的列上,这些列主要是一些外键,可以加快连接的速度
(4)在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的
(5)在经常需要排序的列上去创建索引,因为索引已经排序,这样查询可以利用索引的排序,加快排序查询时间
(6)在经常使用WHERE子句中的列上创建索引,加快条件判断速度。
索引有哪几种类型?
(1)普通索引
这是最基本的索引类型,基于普通字段创建的索引,没有任何限制。
(2)唯一索引
与普通索引类似,不同的是:索引字段的值必须唯一,但允许有空值
(3)主键索引
它是一种特殊的唯一索引,不允许有空值。在创建或者修改表时追加主键约束即可,每一个表只能有一个主键。
(4)复合索引
用户可以再多个列上建立索引,这种索引叫复合索引(组合索引)。复合索引可以代替多个单一索引,相比多个单一索引复合索引所需的开销更小。