索引
MySQL官方对索引(index)的定义为 “帮助MySQL高效获取数据的数据结构”。提取句子主干,就可以得到索引的本质:‘索引是数据结构’
MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引
索引的分类
在一个表中,主键索引只能有一个,唯一索引有多个
- 主键索引(PRIMARY KEY)
- 唯一的标识,不可重复,且只能有一个列作为主键
- 唯一索引(UNIQUE KEY)
- 虽然叫做唯一索引,但它是可以重复出现的。
- 它用来避免重复列的出现,一张表中可以存在多个唯一索引,使表中的多个列不会被重复。
- 常规索引(KEY/INDEX)
- 全文索引(FuilText)