为什么 MongoDB 索引选择B-树
的特点如下: (1)多路非二叉 (2)只有叶子节点保存数据 (3)搜索时相当于二分查找 (4)增加了相邻接点的指向指针。 从上面我们可以看出最核心的区别主要有俩,一个是数据的保存位置,一个是相邻节点的指向。就是这俩造成了MongoDB和Mysql的差别。为什么呢? 3、B-树和B+树的区别 (1)B+树查询时间复杂度固定是logn,B-树查询复杂度最好是 O(1)。 (2)B+树相邻接点的指针可以大大增加区间访问性,可使用在范围查询等,而B-树每个节点 key 和 data 在一起,则无法区间查找。 (3)B+树更适合外部存储,也就是磁盘存储。由于内节点无 data 域,每个节点能索引的范围更大更精确 (4)注意这个区别相当重要,是基于(1)(2)(3)的,B-树每个节点即保存数据又保存索引,所以磁盘IO的次数很少,B+树只有叶子节点保存,磁盘IO多,但是区间访问比较好。 有了他们的区别之后,现在我们再来解释这个原因就好多了。 二、原因解释想要解释原因,我们还必须要了解一下MongoDB和Mysql的基本概念。 1、MongoDB
MongoDB 是文档型的数据库,是一种 nosql,它使用类 Json 格式保存数据。比如之前我们的表可能有用户表、订单表、购物篮表等等,还要建立他们之间的外键关联关系。但是类Json就不一样了。 (编辑:南通站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |