MongoDB的预分配
来源:互联网 发布:拆卸软件是什么意思 编辑:程序博客网 时间:2024/05/16 00:43
MongoDB是一个部署、使用和存储都很方便的一个No SQL数据库,但是使用过程中就发现MongoDB很消耗存储空间。
看某个库的统计数据:
> use yyms_data_2011_12_6_17
switched to db yyms_data_2011_12_6_17
> db.stats()
{
"db" : "yyms_data_2011_12_6_17",
"collections" : 4,
"objects" : 6230728,
"avgObjSize" : 256.37665325785366,
"dataSize" : 1597413192,
"storageSize" : 1938201600,
"numExtents" : 37,
"indexes" : 6,
"indexSize" : 2291485504,
"fileSize" : 8519680000,
"ok" : 1
}这里面fileSize分配了近8G的空间,但是实际存储的数据dataSize和索引indexSize加起来约3.6G,空间利用率45.65%,基本上一半的空间都是浪费的。
对于使用普通SATA硬盘可能还可以接受,但是项目里为了提高速度使用了SSD硬盘,容量只有300G,按如此的使用率只能存一天多一点的数据。
为了提高空间使用率,在启动MongoDB时使用了参数--noprealloc关闭了空间预分配,启动方式改变后查看库的统计信息:
> use yyms_data_2011_12_6_18
switched to db yyms_data_2011_12_6_18
> db.stats()
{
"db" : "yyms_data_2011_12_6_18",
"collections" : 4,
"objects" : 6150619,
"avgObjSize" : 256.32243193733837,
"dataSize" : 1576541620,
"storageSize" : 1938201600,
"numExtents" : 37,
"indexes" : 6,
"indexSize" : 2258045760,
"fileSize" : 6373244928,
"ok" : 1
}fileSize分配了近6G的空间,实际存储的数据dataSize和索引indexSize加起来约3.5G,空间利用率60.17%,看的出来有了很大的提高,如此一块SSD硬盘上可以存两天的数据了,可以达到应用的要求了。
有文章介绍说关闭预分配对性能有影响,不过从目前使用来看,并没有发现有显著的影响,也许是应用场景不一样,不同的场景可以采用不同的策略。
- MongoDB的预分配
- mongodb手动预分配空间大小
- mongodb 安装 用户权限分配
- mongodb分配集群 shard key
- mongodb源码分析(十九)mongos的初始化以及连接池分配回收
- mongodb-erlang driver Replica Set Secondary节点分配不均衡的问题
- hbase的预分配region
- hbase的预分配region
- 可分配的空间分配
- Vmware 缩小预分配的硬盘空间
- MongoDB:mongodb的索引操作
- MongoDB:mongodb的索引操作
- MongoDB:mongodb的分片技术
- MongoDB---查看mongodb的位数
- 【mongodb (一)】mongodb的安装
- [MongoDB] Mongodb的初应用
- 内存的堆分配和栈分配
- 内存的堆分配和栈分配
- YaHoo教你如何优化网站
- Liunx(一)
- Android中采用的MVC框架
- S3C2440之LCD
- 子衿的事(56)
- MongoDB的预分配
- Windows API一日一练(88)EnumProcesses函数
- JAVA编程中影响运行效率的一些因素
- 11月--1293--小马过河
- DotNet三层架构
- mount
- Linux初学
- 为什么选择VC
- 重装VS 2008出现的加载安装组件出错的终极解决方案