关于 paddingFactor 及 COLLMOD 的设置值
来源:互联网 发布:凤岗淘宝培训 编辑:程序博客网 时间:2024/05/16 09:12
关于 paddingFactor 一直感觉很玄乎。不知道这个值到底是什么单位,比如显示1 或 1.4 。
> db.test.stats()
{
"ns" : "test.test",
"count" : 6,
"size" : 272,
"avgObjSize" : 45.333333333333336,
"storageSize" : 4096,
"numExtents" : 1,
"nindexes" : 1,
"lastExtentSize" : 4096,
"paddingFactor" : 1,
"systemFlags" : 0,
"userFlags" : 0,
"totalIndexSize" : 8176,
"indexSizes" : {
"_id_" : 8176
},
"ok" : 1
}
>
而同事也一直纠结的问,一个字段修改后,多长才会被移到表后面啊。
我也说不出一个所以然来。
在查找资料时,看到有关于表(集合)的一个配置,设置COLLMOD的值:
http://docs.mongodb.org/manual/reference/command/collMod/
db.runCommand( {collMod: "products", usePowerOf2Sizes : true })
You can calculate the padding size by subtracting the document size fromthe record size or, in terms of thepaddingFactor, by subtracting1 from thepaddingFactor:
padding size = (paddingFactor - 1) * <document size>.
For example, a paddingFactor of1.0 specifies a padding size of0 whereas apaddingFactor of 1.2 specifies a padding size of0.2 or 20 percent (20%) of the document size.
With the following command, you can use the paddingFactor option ofthecompact command to set the record size to1.1 ofthe document size, or a padding factor of 10 percent (10%):
db.runCommand ( { compact: '<collection>', paddingFactor: 1.1 } )
从官方的说明文档来看,这个值还真是 % ,当然也可以自己修改。
还有下面的转载内容,把这个说明得也很清楚。直接出答案:
collmod 选项:
第一种padding方式,Mongodb会计算一个_paddingFactor,开辟
padding size = (paddingFactor - 1) * <document size>.
大小,以防止update引起的长度变大,需要移动数据。第二种方式usePowerOf2Size,Mongodb为文档开辟的空间总是2的倍数,如之前我们说过的,文档大小68字节,那么就会开辟128字节,bucket函数就是从bucketSize数组中寻找最接近文档长度的那个2的次方值。
这两种方式各有优劣,padding方式会为文档开辟更合适的大小,而且paddingFactor比较小,一般为0.01-0.09,不会浪费空间,文档更新小的话也不会移动文档位置。但是当大量更新和删除的时候,这种方式重复利用空间的能力就比较小,因为在deleteList中,不太容易找到合适的已删除文档,而且一旦更新就会又移动位置,磁盘重复利用率低,增长快,碎片多。相比之下,usePowerOf2Size方式,Mongodb每次都会开辟比文档大的多的空间,使用空间变多,但是更新和删除的容错率就会比较高,因为在deleteList列表中更容易找到合适的删除文档(每个列表中的文档大小都是相同的固定的),更新的时候也不会大量移动位置,磁盘重复利用率高,增长慢。
来源:
Mongodb如何重复利用空间和usePowerOf2Size标识
http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=15795819&id=3554717
- 关于 paddingFactor 及 COLLMOD 的设置值
- 关于Myeclipse的设置及快捷方式
- MongoDB paddingFactor implications
- 关于Swing 背景图设置及各种界面 透明的设置
- 贴图的支持及设置:关于贴图分辨率的支持及设置的用户指南
- 关于 linux 的环境变量设置及 export 的用法
- 关于mysql的max_allowed_packet的设置及问题
- 关于优先值的设置
- 关于jsp环境配置及Bean的设置
- web.xml中关于log4j的设置及范例说明
- web.xml中关于log4j的设置及范例说明
- web.xml中关于log4j的设置及范例说明
- 关于myeclipse的模板及辅助设置,自用留存
- 关于arm时钟频率的设置及编程
- web.xml中关于log4j的设置及范例说明
- 关于TextView和ImageView的背景及透明设置小结
- TI BLE CC2541 关于Notification的设置及应用
- 关于matlab绘图中字体及图片大小等的设置
- [POJ 1523]题解
- 为什么在Python3.4.1里输入print 10000L或10000L失败
- MFC 百度百科 介绍
- 1001. A+B Format (20)
- Spring集成JMS
- 关于 paddingFactor 及 COLLMOD 的设置值
- 哈文将三度执导春晚
- Android Drawable 和String 相互转化
- PowerDesigner 面向对象模型(OOM)说明
- 适配器模式随记
- 琦丰东条英机景送去上处查点景
- solr 客户端发送请求获取索引数据源码导读
- 论证是一门学问 如何让你的观点有说服力-11 规则11 考虑反例证
- 最新场景文字检测进展