线上mongodb版本升级——可见的存储空间的节省

1. 3.0在数据存储引擎上更换成了wiredTiger,在数据压缩方面很有效,解决大数据量问题的情况下,磁盘不够用的问题。

mongodb 3.0 配置文件采用的是YAML格式,只能使用空格,不支持tab键。

2. MongoDb 的MMAPv1和WiredTiger存储引擎空间对比(800万文档 )

MongoDB的使用经验

版本:3.0.6

数据量:876万个html片段

选择mongoDB的原因,存储的对象是文档格式。

MongoDb 和 MySql 的可比性,相当于Java和JavaScript的可比性

数据插入和更新的效率

最高插入记录一秒钟50个记录,同时更新20个记录,表现稳定

关于翻页的效率

使用MMAPv1存储引擎,占用空间 111G

MongoDB的翻页效率明显低。使用find(filter).skip().limit()的方式,不使用索引,通过全表扫描的方式进行的,如果记录数量上百万,系统几乎不可用。

翻页采用 ( X > _id ) .limit() 的方式后,使用了_id索引,翻页耗时基本相同。

使用MySql MyISAM引擎, 占用空间:75G

使用WiredTiger存储引擎,并启用压缩功能,占用空间30G

关于_id 值

在新增文档的时候,如果不指定_id字段的值,mongoDB 会自动生成一个唯一值。在与Mysql结合使用的场景下,可以把对应Mysql主键值当作mongoDB _id 值。

其他

用mongoDB存储文档类或小文件类的数据,且数据带有一部分的元数据;

以主键建立关联,用MySql满足复杂的查询需求,用mongoDB满足多变的schema数据结构需求;

MySql是面向字段的,mongoDB 是面向内容的

字段名尽量短一点,mongoDB占用空间比MySql多

参考

mongodb

data compression

3. 实际使用后发现确实相对于曾经的2.4.2版本省下了大量的磁盘空间。并且3.x版本对多核系统的优化也提升了数据库的写入性能。

你可能感兴趣的:(线上mongodb版本升级——可见的存储空间的节省)