版权声明:本原创文章来自星光的装作,严禁转载,盗版必究 https://blog.csdn.net/qq_26791111/article/details/84529438
mysql引擎的四种索引&&表的四种索引区别
mysql引擎的四种索引与表的四种索引是不同的,千万不要混淆了
- 引擎的四种索引:B+树引、R树引、哈希索引、全文索引
- 表的四种索引:主键索引、唯一索引、普通索引、全文索引
引擎的索引支持
* | Myisam | InnoDB | BDB | Memory | Archive |
---|---|---|---|---|---|
全文索引 | Y | Y | |||
B+树索引 | Y | Y | Y | Y | |
哈希索引 | Y | Y | |||
R树索引 | Y | Y | |||
索引缓存 | Y | Y | Y |
表的索引
* | Myisam | InnoDB | BDB | Memory | Archive |
---|---|---|---|---|---|
主键索引 | Y | Y | Y | Y | |
唯一索引 | Y | Y | Y | Y | |
普通索引 | Y | Y | Y | Y | |
全文索引 | Y | Y | Y |
误区1:二叉树索引
注意:mysql不支持二叉树索引,B树、B+树不是二叉树。
注意:如果二叉树插入的数据一次比一次大呢?比如ID自增?看下图
总结:发现二叉树就会生成一万多节,性能不一定能提示多少
误区2:InnoDB不支持哈希索引
请看mysql官方文档
总结:InnoDB不支持hash索引,但又给出了一个特殊的解释。mysqlInnoDB存储引擎 是支持hash索引的,不过,我们必须启用,hash索引的创建由InnoDB存储引擎引擎自动优化创建,我们干预不了。
误区3:索引指向数据所在的磁盘地址
总结:Innodb的索引是指向主键索引,主键索引指向文件地址; MyISMA的索引是直接指向文件地址;