因为mysql innodb是关系型数据库,为了提高搜索速度,树的层高越低越好,而B+树由于完整数据只存储在叶子节点。所以非叶子节点能存储更多的索引信息,有助于搜索速度的提高。而叶子节点存在指向相邻叶子节点的双写指针,有助于范围查询的查询速度提升。而但凡做关联查询,躲不开join操作的!既然涉及到了join操作,无外乎从一个表中取一个数据,去另一个表中逐行匹配,如果索引结构是B+树,叶子节点上是有指针的,能够极大的提高这种一行一行的匹配速度!
而mongodb是非关系型数据库。理论上关联关系要维护在json串里面,collection与collection之间没有关联关系。单一查询的场景比较多。因此使用B树就可以,还能节省存储空间。