关于 paddingFactor 及 COLLMOD 的设置值
關于 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/
You can calculate the padding size by subtracting the document size fromthe record size or, in terms of the paddingFactor, by subtracting1 from the paddingFactor:
padding size = (paddingFactor - 1) * <document size>.For example, a paddingFactor of 1.0 specifies a padding size of0 whereas a paddingFactor 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 ofthe compact command to set the record size to 1.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 的设置值的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 共享一PYTHON 相关应用领域的介绍资
- 下一篇: HADOOP2.5.0_64安装日志