7 关于索引
MySQL 官方对索引的定义为:索引( index )是帮助 MySQL 高效获取数据的数据结构。 索引的本质就是数据结构
7.1 索引的分类
在一个表中,主键索引只能有一个,唯一索引可以有多个
- 主键索引 ( PRIMARY KEY )
- 唯一索引 ( UNIQUE KEY )
- 避免重复的列出现,唯一索引可以重复,多个列都可以表示为唯一索引
- 常规索引( KEY / INDEX )
- 全文索引( FULLTEXT )
- 在特定的数据库引擎下才有,MYISAM
- 快速定位数据
基础语法:
SHOW INDEX FROM `lol`
ALTER TABLE lol ADD FULLTEXT INDEX `name`(`name`)
EXPLAIN SELECT * FROM lol
EXPLAIN SELECT * FROM lol WHERE MATCH(`name`) AGAINST('R')
7.2 测试索引
索引在小数据良的时候用处不大,在大数据的时候,区别十分明显
7.3 索引原则
- 索引不是越多越好
- 不要对经常变动的数据加索引
- 小数据量的表不需要加索引
- 索引一般加在常用来查询的字段上
索引的数据结构
Hash 类型的索引
Btree:InnoDB 的默认数据结构~
阅读:CodingLabs - MySQL索引背后的数据结构及算法原理
[CodingLabs - MySQL索引背后的数据结构及算法原理](
|