mongodb

1、mongodb是无关系数据库(NoSql)
2、mongodb数据保存在磁盘,使用mmap进行linux内核与用户态的内存映射,省略一次拷贝操作。linux内核与磁盘的交互拷贝由linux内核管理。
3、mongodb的性能不如redis,但是如果保证冷热数据的读写比,减少内存和磁盘的数据交换,mongodb性能还是不错的。
4、mongodb对文档更新,不支持部分文档更新(类似mysql只更新某几个字段),mongodb会把文档删除,重新生成新的文档。
5、mongodb的并发性、原子性与隔离性。全局读写锁(类似于表锁)
4、为什么mongodb索引使用B-树,不使用B+树

B树的树内存储数据,因此查询单条数据的时候,B树的查询效率不固定,最好的情况是O(1)。我们可以认为在做单一数据查询的时候,使用B树平均性能更好。但是,由于B树中各节点之间没有指针相邻,因此B树不适合做一些数据遍历操作。
B+树的数据只出现在叶子节点上,因此在查询单条数据的时候,查询速度非常稳定。因此,在做单一数据的查询上,其平均性能并不如B树。但是,B+树的叶子节点上有指针进行相连,因此在做数据遍历的时候,只需要对叶子节点进行遍历即可,这个特性使得B+树非常适合做范围查询。
Mysql中数据遍历操作比较多,所以用B+树作为索引结构。而Mongodb是做单一查询比较多,数据遍历操作比较少,所以用B树作为索引结构。

你可能感兴趣的:(mongodb,数据库,linux)