mongodb第十一篇文章~mongodb的引擎解读

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mongodb第十一篇文章~mongodb的引擎解读相关的知识,希望对你有一定的参考价值。

一 简介 WiredTiger引擎调优技

二 两种引擎对比概念

  从3.2.x开始,WiredTiger成为默认的存储引擎。最为MongoDB目前最流行的存储引擎,WiredTiger与原先的MMAPV1相比有以下优势:

  1 性能&并发:在大多数工作负载下,WiredTiger的性能要比MMAPV1高很多。WiredTiger引擎为现代多核系统量身定制,更好地发挥多核系统的处理能力。MMAPV1引擎使用表级锁,因此,当某个单表上有并发的操作,吞吐将受到限制。WiredTiger使用文档级锁,由此带来并发及吞吐的提高。对于典型的应用,切到WiredTiger引擎,可带来5-10倍的性能提升。

 2  压缩&加密:MMAPV1引擎要求数据在内存和在磁盘的形式一致(map磁盘内存映射)。因此,它并不支持压缩和加密。WiredTiger并没有这层限制,可以更好地支持。

3   索引前缀压缩:WiredTiger存储索引时使用前缀压缩——相同的前缀只存一次。由此带来的效果是:索引更小了,对物理内存使用也更少了。

4   数据存储方式: 两种存储引擎采用了不同的存储引擎,是没办法直接替换软件目录进行升级的,只能初始化重新同步或者导入,wt引擎生产的数据和索引文件以wt为结尾,jr日志命名为WiredTigerPreplog开头1三 WiredTiger 参数

 一  wiredTigerCacheSizeGB=48
含义
   1 cacheSizeGB 指的就是Cache size,包括数据和索引。Mongod本身使用内存如连接池堆栈以及sorting buffer等都是额外的,不会被统计到这个数字里面。
   2 MongoDB在做诸如聚合、排序、连接管理等操作时需要额外的内存。因此,必须确保有足够的内存可供使用,否则,MongoDB进程有被OOM killer杀死的风险。
     和mysql的innodb_buffer_pool很像呢,数据索引放在内存里,排序需要额外的内存
2 推荐配置
   服务器内存X75%
3 查看状态命令
   db.serverStatus().wiredTiger.cache
二  wiredTigerDirectoryForIndexes=true
1  含义
    Index文件和数据文件分离,索引一个目录,数据一个目录。
    去具体的collection目录下可以发现
    collection index 两个目录
三  wiredTigerDirectoryForIndexes=true
1 含义
   是否开启索引的前缀压缩,这里影响所有DB的索引。它会一次存储所有前缀一样的索引,
   减少内存、磁盘IO的消耗,默认开启。
四  wiredTigerCollectionBlockCompressor=snappy
1 含义
   采用何种压缩方式 默认snappy 不建议采用zlib方式,会加重CPU的负担

五 以后有的会继续补充





















以上是关于mongodb第十一篇文章~mongodb的引擎解读的主要内容,如果未能解决你的问题,请参考以下文章

python3下scrapy爬虫(第十一卷:scrapy数据存储进mongodb)

第十二章 springboot + mongodb(复杂查询)

mongodb第十篇文章~探讨mongodb的集群

mongodb第五篇文章~关于mongodb的两种引擎

MongoDb Mmap引擎分析

第十一条理解objc_masgSend的作用