我对此事进行了一些搜索,发现 Mysql 使用 B+Tree 索引,但是当我运行“show index”时,我得到的索引类型是 Btree。而且我在这篇文章中发现Mysql同时使用了Btree和B+tree。如果它同时使用两者是真的;为什么它被命名为 Btree 没有提到 B+tree,在这种情况下,每一个都使用。知道两者的区别,想做一些查询,搞清楚B-tree和B+tree索引在性能上的区别。这就引出了我的第二个问题,两者在执行某些查询时是否存在很大差异,如果是,请举例说明。先感谢您。
InnoDB 使用 B+Tree 索引,而不是 B-Tree。可以在此处找到有关 InnoDB 数据结构的所有详细信息。您可能还想查看这些图表。这两个资源的作者 Jeremy Cole 是谷歌 MySQL 团队的负责人。
为什么是语法BTREE
而不是B+TREE
?这个问题应该向一些 MySQL 或 MariaDB 工程师提出,但我认为至少有两个可能的原因:
+
通常是一个运算符。ISAM
存储引擎一样古老,但已不复存在。很有可能当时使用了B-TREE。为什么文档说明 InnoDB 使用 B-Tree?好吧,并不是所有的 MySQL 用户都应该知道 B+Tree 是什么。这可能过于简单化,但在这种情况下,我认为这是可以接受的。
你写道你知道 B-Tree 和 B+Tree 之间的区别。比不同的性能特点应该是清楚的:
但总的来说,B+Tree 被认为是优越的。多少?我不知道,但肯定不是数量级。
归档时间: |
|
查看次数: |
6398 次 |
最近记录: |