暂无图片
如何评价WiredTiger这个存储引擎?
我来答
分享
杨培瑜
2023-11-04
如何评价WiredTiger这个存储引擎?

wiredTiger解耦了磁盘和内存的存储形式,从而使得数据在内存中可以有更高的并发度,而不受限于物理的page页面,并在存储时通过WAL + consolidation + 压缩的形式进行增量存储。同样是使用b+作为index的innoDB跟wiredTiger既有相似点也有不同点。这个问题主要是想了解WiredTiger整了这么一个大创新(跟innodb比或者其他关系数据库的index),优劣点具体在哪?

1. 从并发角度来说,大家都支持行级锁,且关系数据库还能支持更复杂的大型事务,那wiredTiger的优势在哪?

2. 从存储角度来说,wiredTiger将数据进行压缩后增量存储,但是这依然是对物理存储空间造成了很大消耗,且空间的垃圾回收也是个很大的问题,因为数据压缩后大小都不是定长的,那么这么做又是为什么?


我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
雪狼sunny


WiredTiger相对于InnoDB等关系数据库引擎在几个方面有所不同:

  1. 并发性能方面:

    • WiredTiger通过解耦磁盘和内存的存储形式,实现了更高的内存并发度,这意味着更多的数据可以在内存中进行处理,而不受物理页面的限制。这为高并发环境下的数据处理提供了更大的灵活性和性能优势。
    • 它还采用了乐观并发控制机制,这意味着它可以更好地处理多个事务对同一数据的并发操作。这使得WiredTiger在高并发负载下表现更为出色。
  2. 存储方面:

    • 数据压缩和增量存储的方式可以在一定程度上减少物理存储空间的消耗。虽然压缩后的数据大小不是定长的,但通过压缩可以减小磁盘占用空间。
    • 垃圾回收对于任何涉及数据删除或更新的引擎来说都是一个重要问题,而WiredTiger在这方面也有优化,其存储引擎可以更有效地处理数据的垃圾回收,减少空间浪费。

总的来说,WiredTiger相对于InnoDB等传统关系数据库引擎在并发性能和存储方面都有一些优势,尤其是在处理大规模数据和高并发访问时能够表现更为出色。

暂无图片 评论
暂无图片 有用 1
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
在Linux系统上如何设置mongodb开机自动启动,系统版本centos7.2
回答 1
已采纳
通过在rc.local去编辑对用启动的命令就可以开机启动了。比如:/usr/local/mongodb/bin/mongodconfig/usr/local/mongodb/bin/mongodb.c
mysql为什么删除的是myisam引擎的表?
回答 1
原因不在存储引擎,而是临时表;https://dev.mysql.com/doc/refman/5.7/en/temporarytableproblems.htmlIfa TEMPORARY
想系统的学习Mongodb,哪本书比较推荐?
回答 2
建议考取mongodbc100dba认证,学习书籍简列如下:MongoDB游记之轻松入门到进阶MongoDB运维实战MongoDB权威指南MongoDB从入门到商业实战MasteringMongoDB
Python脚本从MongoDB导数据到kingbase 占用了大量swap 效率非常低
回答 1
swap空间都占满了,这速度肯定是慢的了。看看是否可以调大一下服务器的内存;或者是调整swappiness参数:swappiness是一个0到100之间的整数值,用于控制内核使用swap的频率。较低的
Error: No space left on device ,内存 磁盘 Inodes资源 充足, 要检查什么?
回答 1
已采纳
有些文件删除时还被其它进程占用,此时文件并未真正删除,只是标记为deleted,只有进程结束后才会将文件真正从磁盘中清除。试试通过lsop命令查看被进程占用中的文件。
我想问问 spring 下的mongo 我如果启动多个相同地址的 MongoClient 这样是共享一个 ServerSession 吗?
回答 1
这个使用该是代码配置文件。应该是用通templateclient模板。最好看看spring里的配置
wiredtigerLAS.wt的文件暴增,非常占用磁盘空间,有什么解决办法吗?
回答 1
mongodb也跟其他关系型数据一样,删除数据不会释放空间问题。第一先要了解暴增的文件和原因,之后文件空间回收方面compact、repair、dump方式都可以的,具体查下官网,本次测试一下,之后在
dnf安装MongoDB时为什么自动下载安装了Python2?
回答 1
应该不需要,直接tar使用就行。
mongodb4.0在windows server 2012 R2系统上,单机/副本集的单个collection大小是否有限制
回答 3
已采纳
问题已解决,经定位,并非mongodb问题,而是存储存在单个文件的限制,导出压根就没完成,导出时,单个文件达到4TB,数据无法继续写入。。。。
有3个standalone 的Mongodb节点,各自存储不同的数据,有什么方法把它们操作成一个集群吗?
回答 1
1.先搭建一个空的副本集集群2.采用mongoshakeormongosyncor其他类似的同步工具将这3个节点的数据同步都上面的空集群。