首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在MongoDB中保持较低的数据库大小?

问如何在MongoDB中保持较低的数据库大小?
EN

Database Administration用户
提问于 2017-01-14 12:43:47
回答 1查看 3.3K关注 0票数 1

新手来了。

TL;DR :在MongoDB中压缩数据的最佳方法是什么?它会比其他数据库系统占用更多的空间吗?

我想为类似论坛的东西创建一个数据库。我开始学习MySQL,但我不需要一个关系数据库管理系统来满足我的需要(我的大多数关系是1比1(最多是1比1),即使我有一点数据冗余,我宁愿将信息存储为文档的字段和值对,我认为对于JSON来说,它比在MySQL中加入很多表要快得多。与SQL相比,我更喜欢JavaScript。

但是现在看看存储需求,我找不到像TINYINT、CHAR(3)等。我想降低服务器空间的成本,但同时记录了很多信息(时间、评级、投票、评论、标签、因果报应、收藏等等)。我希望我错了,但是MySQL似乎浪费了相当少的空间(尽管我认为这是由MongoDB来弥补的)。

在MongoDB中减少大小的最佳实践是什么?我是否完全错误地认为MongoDB比MySQL和其他DB占用更多的空间(忽略在MySQL中连接表以避免数据冗余的好处)?

到目前为止,这些是我在上面找到的最好的文章:

如何限制MongoDB数据库的大小(数据库上的力大小限制)

https://www.compose.com/articles/sizing-and-trimming-your-mongodb/(cap数据库和发布预取空间)

https://docs.mongodb.com/manual/reference/command/compact/(使用compact,特别是在WiredTiger DB上)

https://stackoverflow.com/questions/2966687/reducing-mongodb-database-file-size(修复数据,与上面相同)

正如@Fyodor在他的回答中所提醒的那样,还有两个压缩算法: snappy和zlib。

谢谢你的建议!

EN

回答 1

Database Administration用户

回答已采纳

发布于 2017-01-16 16:00:17

由于数据没有标准化,存储需求通常更大。

别忘了压缩。当您使用gzip时,它将使用更多的CPU功率,但是磁盘大小要比snappy小得多。这取决于你的数据。

一些MongoDB顾问对不同的压缩算法进行了基准测试,但这个文件并不公开。也许一些MongoDB的人提供了一个改进的答案;)

  • 无压缩
  • Snappy (默认启用)-非常好的压缩,有效地利用资源
  • zlib (类似于gzip) -出色的压缩,但更多的资源密集型

参见启动参数storage.wiredTiger.collectionConfig.blockCompressor

默认值:版本3.0.0中的snappy。用于压缩集合数据的默认压缩类型。在创建集合时,可以在每个集合的基础上重写此操作。可用的压缩器是: none storage.wiredTiger.collectionConfig.blockCompressor影响所有创建的集合。如果在现有的storage.wiredTiger.collectionConfig.blockCompressor部署中更改MongoDB的值,则所有新集合都将使用指定的压缩程序。现有的集合将继续使用在创建它们时指定的压缩程序,或者在那时使用默认的压缩器。

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/161069

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档