目录
百战程序员,全站22050+开发课程+文档 ,学习精选优质好课快人一步!观看视频 快捷键ALT+N

JAVA全系列 教程

3762个小节阅读:7090.4k

收藏
全部开发者教程

C语言快速入门

JAVA全系列 教程

面向对象的程序设计语言

Python全系列 教程

Python3.x版本,未来主流的版本

人工智能 教程

顺势而为,AI创新未来

大厂算法 教程

算法,程序员自我提升必经之路

C++ 教程

一门通用计算机编程语言

微服务 教程

目前业界流行的框架组合

web前端全系列 教程

通向WEB技术世界的钥匙

大数据全系列 教程

站在云端操控万千数据

AIGC全能工具班

A

A A

White Night

阅读(700)
赞(0)

MongoDB存储引擎

存储引擎负责管理数据如何在磁盘和内存中存储,MongoDB支持多种存储引擎,不同的存储引擎都有其在特定工作环境下的特点,选择适合的存储引擎能够有效提高应用程序的性能。

WiredTiger存储引擎 (默认)

WiredTiger适合大多数工作场景,从MongoDB 3.2开始默认的存储引擎是WiredTiger,3.2版本之前的默认存储引擎是MMAPv1,MongoDB 4.x版本不再支持MMAPv1存储引擎。

  • 支持document级别并发操作

WiredTiger对写入操作使用document级并发控制。因此,多个客户端可以同时修改集合的不同文档。对于大多数读写操作,WiredTiger使用乐观并发控制。WiredTiger仅在全局、数据库和集合级别使用意向锁。当存储引擎检测到两个操作之间的冲突时,其中一个操作将引发写入冲突,MongoDB会对用户透明地重试该操作。

  • Snapshots and Checkpoints(快照和检查点)

WiredTiger使用多版本并发控制(MVCC)。在操作开始时,WiredTiger会向操作提供数据的point-in-time快照,快照显示了数据在内存中的一致性视图。

从3.6版开始,MongoDB将WiredTiger配置为每隔60秒创建检查点(即将快照数据写入磁盘)。在早期版本中,MongoDB将检查点设置为在WiredTiger中每隔60秒或写入2 GB日志数据时(以先发生的为准)对用户数据进行检查。

  • Journal(日志)

WiredTiger将日志与检查点结合使用,以确保数据的持久性。WiredTiger日志将保留检查点之间的所有数据修改。如果MongoDB在两个检查点之间退出,它将使用日志重播自上一个检查点以来修改的所有数据

  • Compression(压缩)

使用WiredTiger存储引擎,MongoDB会对所有集合和索引进行压缩,压缩以牺牲额外的CPU为代价,最大限度地减少了磁盘的使用。默认情况下,WiredTiger对所有集合使用block compression,并对索引使用prefix compression。

  • 内存使用

对于WiredTiger,MongoDB利用WiredTiger内部缓存和文件系统缓存。从MongoDB 3.4开始,默认WiredTiger内部缓存大小为以下两者中的较大值:

50% of (RAM - 1 GB)

256 MB

实时效果反馈

1.MongoDB4.4使用的存储引擎是?

A MyISAM

B InnoDB

C WiredTiger

D MMAPv1

答案

1=>C

2.一台主机的内存是1.25GB时,wiredTiger存储引擎的内部缓存大小是?

A 0.5GB

B 256MB

C 1GB

D 以上都不对

答案

2=>B

 

北京市昌平区回龙观镇南店村综合商业楼2楼226室

©2014-2023 百战卓越(北京)科技有限公司 All Rights Reserved.

京ICP备14032124号-2