MongoDB实战第二版笔记(11)第十章笔记

MongoDB实战第二版笔记(11)第十章笔记

  1、存储引擎是数据库和硬件直接的接口,不会改变shell或驱动里执行的查询,也不会在集群级别干扰MongoDB,但影响如何从磁盘写入、删除和读取数据以及存储使用的数据结构。

  2、可插拔引擎API允许第三方为MongoDB开发存储引擎。

  3、MongoDB之前使用MMAPv1做存储引擎,现在仍在使用,这是基于内存映射是MongoDB文档的解决方案。然而大量要存储数据时,它会随着数据增长快速消耗大量磁盘空间,每次预分配2GB的增长空间。MongoDB提供预分配空间机制,每个增加都是预分配2GB。3.0以后版本,可以告诉MongoDB使用哪个存储引擎。

  4、MongoDB提供备选存储引擎WiredTiger。

  5、WiredTiger是高性能的、可伸缩的、开源的数据存储引擎,专注于多核伸缩性【现代编程实现,风险指针和无锁机制】和最佳内存使用。

  6、要启用WiredTiger,需要在配置文件YAML中设置存储参数即可。

在这里插入图片描述

MongoDB配置文件的不同参数。

  7、WiredTiger和MMAPv1性能对比。

  • WiredTiger启动服务器和初始化存储目录过程很痛苦【久】
  • 无压缩模式的WiredTiger比MMAPv1少用磁盘。
  • 纯读取,MMAPv1最慢,压缩版本的WiredTiger效率高。对缓存结果,MMAPv1比WiredTiger稍快。

  8、B-树强大之处是基于磁盘的存储按块进行。

  9、WiredTiger提供文档级别的锁,多个请求可以同时访问一个集合而不需要互相阻塞,只要没有同时写入一个文档。

发布了189 篇原创文章 · 获赞 675 · 访问量 31万+

猜你喜欢

转载自blog.csdn.net/YuYunTan/article/details/105476030