1. 什么是索引?
客户端-》【缓存-》语法解析器-》查询优化器-》查询执行引擎】-》索引和数据
索引是辅助存储引擎高效获取数据的一种数据结构,索引是数据的目录,便于搜索引擎快速定位数据
2. 索引的分类
数据结构: B+ tree、Hash、Full-text索引
物理存储:聚簇索引和二级索引(辅助索引)
字段特性:主键索引、唯一索引、普通索引、前缀索引
字段个数: 单列索引和联合索引(复合索引)
2.1 数据结构
InnoDB | MyISAM | Memory | |
---|---|---|---|
B+tree 索引 | Yes | Yes | Yes |
Hash索引 | No | No | Yes |
Full-text索引 | Yes | Yes | No |
3. 类型对比
3.1 B+树与B-tree的区别?
相对于B-tree,B+tree只在叶子节点存储数据,而B-tree的非叶子节点也存储数据,索引B+tree单个节点的数据量更小,在相同的磁盘I/O次数下