普通索引和唯一索引的区别以及何时需要建立索引
一、背景介绍
索引作用:简而言之,加快搜索速度
常见索引分类:普通索引,唯一索引,主键索引,全文索引,组合索引
今天主要探讨普通索引,唯一索引和主键索引,不涉及全文索引和组合索引
二、知识剖析
普通索引:最基本的索引,相对于唯一索引和主键索引无特殊限制
主键索引:是一种特殊的唯一索引,一个表只能有一个主键,不允许有空值,将整个数据表变成聚集索引
主键索引:是一种特殊的唯一索引,一个表只能有一个主键,不允许有空值,将整个数据表变成聚集索引
唯一索引与主键索引不一样的地方:
①本质:主键是一种约束,唯一索引是一种索引,两者在本质上是不同的。
②包含关系:主键创建后一定包含一个唯一性索引,唯一性索引并不一定就是主键。
③空值:唯一性索引列允许空值,而主键列不允许为空值。
④默认创建:主键列在创建时,已经默认为空值 + 唯一索引了。
⑤主键唯一性:一个表最多只能创建一个主键,但可以创建多个唯一索引。
⑥引用外键:主键可以被其他表引用为外键,而唯一索引不能。
索引原理:
几乎所有索引都是单独建立目录,里面按顺序(B-Tree)存储着字段所有值和对应的主键,然后在索引中找到查询的字段后,依靠此主键去聚集索引中查询该条信息
三、常见问题
既然索引这么牛,那我是不是应该每个字段都加一个呢?