Mongo限制規則


 

文章翻譯自來源:http://docs.mongodb.org/manual/reference/limits/#limit-bson-document-size

一、BSON 文檔

1BSON文檔大小,最大限制為16MB,這種限制是為了確保單個文檔不會使用過多的RAM,或者在遷移期間不會占用過多的帶寬。為了保存大於該限制的文檔,mongodb提供了GridFS

當插入的文檔大於16MB時將得到如下的錯誤信息(java客戶端):com.mongodb.MongoInternalException: DBObject of size 30836631 is over Max BSON size 16777216

2、文檔的最大嵌套數為 100


二、名字空間

1、名字空間長度限制:包括數據庫與集合名稱,總共不能超過123字節

2、名字空間數量:

mongo為每個數據庫保存一個16MB的名字空間文件,dbname.ns ,每個名稱占用628字節,因此默認可以支持24000個名字空間(索引也占用一個名字空間)。

3、名字空間文件大小:最大不超過2048MB,默認為16MB,可以使用nssize選項進行配置。


三、索引

1、索引關鍵字:該字段的取值不能超過1024字節,否則不能添加到一個索引中。

2、集合的最大所有個數:64

3、索引名稱長度:包括數據庫於集合名稱總共不超過125字符。

4、聯合索引最大字段個數:31

5、不能聯合使用text索引與其他類型索引


四、帽子集合(Capped Collections

1、帽子集合的最大文檔數:當在創建時候執行最大文檔數參數時,該值必須小於232次方。若在創建的時候沒有指定則文檔數不限制。


五、復制集

1、最大的復制集個數:12

2、復制集的投票成員個數:任何時刻最大只有7個成員擁有投票權


六、分片集群

1、在分片環境中不支持的操作:groupeval$where $isolated $snapshot geoSearch

2、已存在數據的分片:對於已存在數據的集合,分片的最大支持數據為256GB. 在集群環境之中最大支持的分片集合大約為400GB。精確的閾值根據chunk於數據大小而定。(也就是說,如果要對已有的集合進行分片,那么要在其增長到256G之前進行)。

3、分片集合中的文檔更新:所有updateremove操作必須包括分片關鍵字或者id字段作為查詢字段。若沒有這些字段將失敗。

4、分片集合中的唯一索引:除非唯一索引關鍵字使用shard key作為前綴,否則不支持。當使用shardkey作為前綴時,mongo將強制整個key唯一,而非單一字段。 具體可參考:http://docs.mongodb.org/manual/tutorial/enforce-unique-keys-for-sharded-collections/


七、分片關鍵字限制

1、關鍵字不能超過512字節。

2、關鍵字不允許變更:若要修改可采用如下方式:

1)導出所有數據到另外的格式

2)刪除原來的分片集合

3)配置新的分片關鍵字

4)預先分割關鍵字范圍確保實現分布式

5)保存導出的數據到mongo之中。

3、關鍵字值不允許修改:當一個文檔已經插入到分片集合中后,涉及到分片關鍵字的字段不允許update

4、單調遞增/遞減的分片關鍵字會限制插入效率:

如果使用_id字段作為分片關鍵字,由於該字段根據time遞增,因此這也是一個會影響插入效率的。當向單調遞增或遞減的分片關鍵字集合中插入數據時,所有的插入將會導入到同一個chunk同一個分片之中。

加入在集群中以讀取和更新占據主導,則這種限制並不影響集群。

為了避免這種限制,使用一個哈希分片關鍵字或者選擇一個非單調遞增遞減的字段。


八、操作

1、聯合多個$in操作:聯合多個in表達式,將可能觸發聯合索引的合並限制。如果符合的item大於等於4000000mongo將產生“combinatorial limit of $in partitioning of result set exceeded錯誤。

 

九、命名限制

1、數據庫名稱是大小寫區別的:同時mongo也不允許兩個數據庫名稱僅僅為大小寫區別。

2、在windows下的數據庫名稱限制:/\. "*<>:|? 並且不能包括空格符。

3、在Unix Linux下的數據庫名稱限制:/\. " 同樣不能包括空格符。

4、數據庫名稱長度:64字節

5、集合名稱限制:

必須以下划線或者字母開頭,並且不能包括 $,引號,空格符,點號

6、字段名稱限制:

不能包括點號,$,與空格符。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM