mysql InnoDB存储引擎底层存储用的是B+树,为啥mongodb用的是B树

因为mysql innodb是关系型数据库,为了提高搜索速度,树的层高越低越好,而B+树由于完整数据只存储在叶子节点。所以非叶子节点能存储更多的索引信息,有助于搜索速度的提高。而叶子节点存在指向相邻叶子节点的双写指针,有助于范围查询的查询速度提升。而但凡做关联查询,躲不开join操作的!既然涉及到了join操作,无外乎从一个表中取一个数据,去另一个表中逐行匹配,如果索引结构是B+树,叶子节点上是有指针的,能够极大的提高这种一行一行的匹配速度!

而mongodb是非关系型数据库。理论上关联关系要维护在json串里面,collection与collection之间没有关联关系。单一查询的场景比较多。因此使用B树就可以,还能节省存储空间。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容