Kích thước tài liệu tối đa giúp đảm bảo rằng một tài liệu không thể sử dụng quá nhiều RAM hoặc quá nhiều băng thông trong quá trình truyền. Để lưu trữ tài liệu lớn hơn kích thước tối đa, MongoDB cung cấp GridFS API. Xem và tài liệu dành cho trình điều khiển của bạn để biết thêm thông tin về GridFS
Độ sâu lồng nhau cho tài liệu BSONMongoDB hỗ trợ không quá 100 cấp độ lồng nhau cho
Hạn chế đặt tên
Tên cơ sở dữ liệu Phân biệt chữ hoa chữ thườngVì tên cơ sở dữ liệu không phân biệt chữ hoa chữ thường trong MongoDB, nên tên cơ sở dữ liệu không thể chỉ khác nhau về chữ hoa chữ thường
Hạn chế về tên cơ sở dữ liệu cho WindowsĐối với triển khai MongoDB chạy trên Windows, tên cơ sở dữ liệu không được chứa bất kỳ ký tự nào sau đây
/\. "$*:|?
Ngoài ra, tên cơ sở dữ liệu không thể chứa ký tự null
Hạn chế về tên cơ sở dữ liệu cho hệ thống Unix và LinuxĐối với triển khai MongoDB chạy trên hệ thống Unix và Linux, tên cơ sở dữ liệu không được chứa bất kỳ ký tự nào sau đây
/\. "$
Ngoài ra, tên cơ sở dữ liệu không thể chứa ký tự null
Độ dài của tên cơ sở dữ liệuTên cơ sở dữ liệu không được để trống và phải có ít hơn 64 ký tự
Hạn chế về tên bộ sưu tậpTên bộ sưu tập phải bắt đầu bằng dấu gạch dưới hoặc ký tự chữ cái và không được
- chứa $ .
- là một chuỗi rỗng [e. g. "" ].
- chứa ký tự null
- bắt đầu với hệ thống. tiền tố. [Dành riêng cho sử dụng nội bộ. ]
Nếu tên bộ sưu tập của bạn bao gồm các ký tự đặc biệt, chẳng hạn như ký tự gạch dưới, thì để truy cập bộ sưu tập, hãy sử dụng phương thức trong trình bao hoặc phương thức tương tự cho trình điều khiển của bạn
Độ dài tối đa của không gian tên bộ sưu tập, bao gồm tên cơ sở dữ liệu, dấu chấm [ . ] dấu tách và tên bộ sưu tập [i. e. . ], là 120 byte.
Hạn chế về tên trườngTên trường không được chứa dấu chấm [i. e. . ] hoặc ký tự rỗng, và chúng không được bắt đầu bằng ký hiệu đô la [i. e. $ ]. Xem cách tiếp cận thay thế.
không gian tên
Độ dài không gian tênĐộ dài tối đa của không gian tên bộ sưu tập, bao gồm tên cơ sở dữ liệu, dấu chấm [ . ] dấu tách và tên bộ sưu tập [i. e. . ], là 120 byte.
参见
Số lượng không gian tên在 3. 0 版更改
Đối với MMAPv1, số lượng không gian tên được giới hạn ở kích thước của tệp không gian tên chia cho 628
Tệp không gian tên 16 megabyte có thể hỗ trợ khoảng 24.000 không gian tên. Mỗi bộ sưu tập và chỉ mục là một không gian tên
Công cụ lưu trữ WiredTiger không tuân theo giới hạn này
Kích thước của tệp không gian tên在 3. 0 版更改
Đối với công cụ lưu trữ MMAPv1, các tệp không gian tên không được lớn hơn 2047 megabyte
Theo mặc định, các tệp không gian tên là 16 megabyte. Bạn có thể định cấu hình kích thước bằng tùy chọn
Công cụ lưu trữ WiredTiger không tuân theo giới hạn này
参见
chỉ mục
Giới hạn khóa chỉ mụcTổng kích thước của mục nhập chỉ mục, có thể bao gồm chi phí cấu trúc tùy thuộc vào loại BSON, phải nhỏ hơn 1024 byte
在 2. 6 版更改. MongoDB phiên bản 2. 6 trở lên triển khai thực thi mạnh mẽ hơn giới hạn trên chỉ mục khóa .
MongoDB sẽ không có trong bộ sưu tập nếu mục nhập chỉ mục cho tài liệu hiện có vượt quá khóa chỉ mục key . Các phiên bản trước của MongoDB sẽ tạo chỉ mục nhưng không lập chỉ mục cho các tài liệu đó. . Previous versions of MongoDB would create the index but not index such documents.
Hoạt động lập chỉ mục lại sẽ xảy ra lỗi nếu mục nhập chỉ mục cho trường được lập chỉ mục vượt quá khóa khóa giới hạn< . Các hoạt động lập chỉ mục lại xảy ra như một phần của và các lệnh cũng như phương thức. . Reindexing operations occur as part of and commands as well as the method.
Bởi vì các thao tác này loại bỏ tất cả các chỉ mục khỏi một bộ sưu tập và sau đó tạo lại chúng một cách tuần tự, lỗi từ khóa chỉ mục key limit prevents these operations from rebuilding any remaining indexes for the collection and, in the case of the command, from continuing with the remainder of the process.
MongoDB sẽ không chèn vào bộ sưu tập được lập chỉ mục bất kỳ tài liệu nào có trường được lập chỉ mục có mục nhập chỉ mục tương ứng vượt quá khóa chỉ mục key limit, and instead, will return an error. Previous versions of MongoDB would insert but not index such documents.
Các cập nhật cho trường được lập chỉ mục sẽ bị lỗi nếu giá trị được cập nhật khiến mục nhập chỉ mục vượt quá khóa chỉ mục key limit.
Nếu một tài liệu hiện có chứa một trường được lập chỉ mục có mục nhập chỉ mục vượt quá giới hạn, mọi cập nhật dẫn đến việc di chuyển tài liệu đó trên đĩa sẽ bị lỗi
và sẽ không chèn tài liệu chứa trường được lập chỉ mục có mục nhập chỉ mục tương ứng sẽ vượt quá khóa chỉ mục key limit.
Trong MongoDB 2. 6, các thành viên phụ của bộ bản sao sẽ tiếp tục sao chép các tài liệu có trường được lập chỉ mục có mục nhập chỉ mục tương ứng vượt quá khóa chỉ mục key limit on initial sync but will print warnings in the logs.
Thành viên phụ cũng cho phép các hoạt động xây dựng và xây dựng lại chỉ mục trên tập hợp chứa trường được lập chỉ mục có mục nhập chỉ mục tương ứng vượt quá khóa chỉ mục . limit but with warnings in the logs.
Với bộ bản sao phiên bản hỗn hợp trong đó bản phụ là phiên bản 2. 6 và chính là phiên bản 2. 4, thứ hai sẽ sao chép tài liệu được chèn hoặc cập nhật trên 2. 4 chính, nhưng sẽ in thông báo lỗi trong nhật ký nếu tài liệu chứa trường được lập chỉ mục có mục nhập chỉ mục tương ứng vượt quá khóa chỉ mục key limit.
Đối với các bộ sưu tập được phân đoạn hiện có, quá trình di chuyển đoạn dữ liệu sẽ không thành công nếu đoạn dữ liệu đó có tài liệu chứa trường được lập chỉ mục có mục nhập chỉ mục vượt quá khóa chỉ mục . limit.
Một bộ sưu tập có thể có không quá 64 chỉ mục
Tên chỉ mục Độ dàiTên chỉ mục đủ điều kiện, bao gồm không gian tên và dấu phân cách dấu chấm [i. e. . tên>. $ name> ], không được dài hơn 128 ký tự.
Theo mặc định, là sự kết hợp của tên trường và loại chỉ mục. Bạn có thể chỉ định rõ ràng cho phương thức để đảm bảo rằng tên chỉ mục đủ điều kiện không vượt quá .
Số trường được lập chỉ mục trong một chỉ mục tổng hợpKhông thể có nhiều hơn 31 trường trong một chỉ mục phức hợp
Truy vấn không thể sử dụng cả chỉ mục văn bản và không gian địa lýBạn không thể kết hợp truy vấn yêu cầu một toán tử đặc biệt với một toán tử truy vấn yêu cầu một loại chỉ mục đặc biệt khác. Ví dụ: bạn không thể kết hợp truy vấn với toán tử
Các trường có Chỉ mục 2dsphere chỉ có thể chứa Hình họcCác trường có chỉ mục 2dsphere phải chứa dữ liệu hình học ở dạng hoặc dữ liệu. Nếu bạn cố gắng chèn một tài liệu có dữ liệu phi hình học vào một 2dsphere trường được lập chỉ mục hoặc xây dựng một 2dsphere< . index on a collection where the indexed field has non-geometry data, the operation will fail.
参见
Các chỉ mục duy nhất giới hạn trong
Các giá trị NaN được Công cụ lưu trữ WiredTiger trả về từ Truy vấn được bảo hiểm luôn thuộc loại doubleNếu giá trị của một trường được trả về từ một truy vấn là NaN , loại của trường đó NaN value is always double.
Chỉ mục đa phímA không thể hỗ trợ a
Dữ liệu
Số lượng tài liệu tối đa trong một bộ sưu tập giới hạn在 2. 4 版更改
Nếu bạn chỉ định số lượng tài liệu tối đa cho bộ sưu tập giới hạn bằng cách sử dụng tham số max cho , giới hạn phải nhỏ hơn 232 tài liệu. Nếu bạn không chỉ định số lượng tài liệu tối đa khi tạo bộ sưu tập giới hạn, sẽ không có giới hạn về số lượng tài liệu.
Kích thước cơ sở dữ liệuCông cụ lưu trữ MMAPv1 giới hạn mỗi cơ sở dữ liệu không quá 16000 tệp dữ liệu. Điều này có nghĩa là một cơ sở dữ liệu MMAPv1 duy nhất có kích thước tối đa là 32TB. Đặt tùy chọn sẽ giảm giới hạn này xuống 8TB
Kích thước dữ liệu在 3. 0 版更改
Khi sử dụng công cụ lưu trữ MMAPv1, một phiên bản đơn lẻ không thể quản lý tập dữ liệu vượt quá không gian địa chỉ bộ nhớ ảo tối đa do hệ điều hành cơ bản cung cấp
Giới hạn bộ nhớ ảoHệ điều hànhJournaledNot JournaledLinux64 terabyte128 terabyteWindows Server 2012 R2 và Windows 8. 164 terabyte128 terabyteWindows [nếu không]4 terabyte8 terabyteCông cụ lưu trữ WiredTiger không tuân theo giới hạn này
Số lượng Bộ sưu tập trong Cơ sở dữ liệu在 3. 0 版更改
Đối với công cụ lưu trữ MMAPv1, số lượng bộ sưu tập tối đa trong cơ sở dữ liệu là một hàm của kích thước của tệp không gian tên và số lượng chỉ mục của các bộ sưu tập trong cơ sở dữ liệu
Công cụ lưu trữ WiredTiger không tuân theo giới hạn này
Xem Số của Không gian tên để biết thêm thông tin.
Bộ bản sao
Số thành viên của một bộ bản sao在 3. 0. 0 版更改
Bộ bản sao có thể có tối đa 50 thành viên. Xem để biết thêm thông tin về khả năng tương thích trình điều khiển cụ thể với các bộ bản sao lớn
Số thành viên biểu quyết của một bộ bản saoBộ bản sao có thể có tối đa 7 thành viên biểu quyết. Đối với các bộ bản sao có tổng cộng hơn 7 thành viên, hãy xem
Kích thước tối đa của Oplog được tạo tự động在 2. 6 版更改
Nếu bạn không chỉ định rõ ràng kích thước oplog [i. e. với hoặc --oplogSize] MongoDB sẽ tạo một oplog không lớn hơn 50 gigabyte
Cụm phân mảnh
Các cụm được chia nhỏ có các hạn chế và ngưỡng được mô tả tại đây
Sharding hạn chế hoạt động
Hoạt động không khả dụng trong môi trường phân mảnhKhông hoạt động với sharding. Sử dụng hoặc thay thế
3. 0 版后已移除. không được dùng nữa.
không tương thích với các bộ sưu tập sharded. Bạn có thể sử dụng với các bộ sưu tập chưa được phân đoạn trong cụm phân đoạn
không cho phép tham chiếu đến đối tượng db từ hàm. Điều này không phổ biến trong các bộ sưu tập chưa được chia nhỏ.
Công cụ sửa đổi bản cập nhật không hoạt động trong môi trường phân mảnh
truy vấn không hoạt động trong môi trường sharded
Lệnh không được hỗ trợ trong môi trường sharded
Các truy vấn được bảo hiểm trong các cụm phân mảnhMột chỉ mục không thể truy vấn trên một bộ sưu tập khi chạy với a nếu chỉ mục không chứa khóa phân đoạn, với ngoại lệ sau đối với _id index: If a query on a sharded collection only specifies a condition on the _id và chỉ trả về _id field, the _id index can cover the query when run against a even if the _id field is not the shard key.
在 3. 0 版更改. Trong các phiên bản trước, một chỉ mục không thể truy vấn một bộ sưu tập khi chạy với một.
Sharding Kích thước dữ liệu bộ sưu tập hiện cóMột bộ sưu tập hiện có chỉ có thể được chia nhỏ nếu kích thước của nó không vượt quá giới hạn cụ thể. Các giới hạn này có thể được ước tính dựa trên kích thước trung bình của tất cả các giá trị và kích thước được định cấu hình
重要
Các giới hạn này chỉ áp dụng cho hoạt động phân mảnh ban đầu. Bộ sưu tập được phân mảnh có thể phát triển đến bất kỳ kích thước nào sau khi kích hoạt thành công phân đoạn
Sử dụng các công thức sau để tính kích thước bộ sưu tập tối đa theo lý thuyết
maxSplits = 16777216 [bytes] / maxCollectionSize [MB] = maxSplits * [chunkSize / 2]
注解
Kích thước tài liệu tối đa là 16MB hoặc 16777216 byte.
Tất cả các chuyển đổi nên sử dụng tỷ lệ cơ sở 2, e. g. 1024 kilobyte = 1 megabyte
Nếu maxCollectionSize nhỏ hơn hoặc gần bằng với tập hợp mục tiêu, hãy tăng kích thước khối để đảm bảo phân đoạn ban đầu thành công. Nếu có nghi ngờ về việc liệu kết quả tính toán có quá 'gần' với kích thước bộ sưu tập mục tiêu hay không, thì tốt hơn là nên tăng kích thước khối.
Sau khi phân mảnh ban đầu thành công, bạn có thể giảm kích thước khối nếu cần. Nếu sau này bạn giảm kích thước khối, có thể mất thời gian để tất cả các khối chia thành kích thước mới. See 修改集群中数据块的大小 for instructions on modifying chunk size
Bảng này minh họa kích thước bộ sưu tập tối đa gần đúng bằng cách sử dụng các công thức được mô tả ở trên
Kích thước trung bình của Giá trị khóa phân đoạn512 byte256 byte128 byte64 byteSố lần phân tách tối đa32,76865,536131,072262,144Kích thước bộ sưu tập tối đa [Kích thước khối 64 MB]1 TB2 TB4 TB8 TBKích thước bộ sưu tập tối đa [Kích thước khối 128 MB]2 TB4 TB8 TB16 TBKích thước bộ sưu tập tối đa [Tất cả và hoạt động cho một bộ sưu tập được phân đoạn phải bao gồm hoặc trường _id trong đặc tả truy vấn. và các thao tác không có trường hoặc _id trả về lỗi.
Chỉ mục duy nhất trong bộ sưu tập được chia nhỏMongoDB không hỗ trợ các chỉ mục duy nhất trên các phân đoạn, ngoại trừ khi chỉ mục duy nhất chứa khóa phân đoạn đầy đủ làm tiền tố của chỉ mục. Trong những tình huống này, MongoDB sẽ thực thi tính duy nhất trên toàn bộ khóa, không phải một trường duy nhất
Thấy
cho một cách tiếp cận thay thế
Số lượng tài liệu tối đa trên mỗi đoạn để di chuyểnMongoDB không thể di chuyển một đoạn nếu số lượng tài liệu trong đoạn vượt quá 250000 tài liệu hoặc 1. gấp 3 lần kết quả của việc chia cấu hình cho kích thước tài liệu trung bình. bao gồm trường avgObjSize , đại diện cho kích thước tài liệu trung bình trong bộ sưu tập.
Hạn chế chính của Shard
Kích thước khóa mảnhKhóa phân đoạn không thể vượt quá 512 byte
Loại chỉ mục khóa phân đoạnChỉ mục có thể là chỉ mục tăng dần trên khóa phân đoạn, chỉ mục tổng hợp bắt đầu bằng khóa phân đoạn và chỉ định thứ tự tăng dần cho khóa phân đoạn hoặc chỉ mục được băm
Chỉ mục không thể là chỉ mục chỉ định chỉ mục nhiều phím, chỉ mục văn bản hoặc chỉ mục trên các trường
Shard Key là bất biếnNếu bạn phải thay đổi khóa phân đoạn
- Kết xuất tất cả dữ liệu từ MongoDB sang định dạng bên ngoài
- Bỏ bộ sưu tập đã phân mảnh ban đầu
- Định cấu hình sharding bằng phím shard mới
- Chia trước phạm vi khóa phân đoạn để đảm bảo phân phối đồng đều ban đầu
- Khôi phục dữ liệu đã đổ vào MongoDB
Sau khi bạn phân đoạn một bộ sưu tập, khóa phân đoạn và các giá trị của khóa phân đoạn là không thay đổi; . e
- Bạn không thể chọn một khóa phân đoạn khác cho bộ sưu tập đó
- Bạn không thể cập nhật giá trị của các trường khóa phân đoạn
Đối với các cụm có khối lượng chèn cao, một phím phân đoạn có các phím tăng và giảm đơn điệu có thể ảnh hưởng đến thông lượng chèn. Nếu khóa phân đoạn của bạn là trường _id , hãy lưu ý rằng các giá trị mặc định của _id fields are which have generally increasing values.
Khi chèn tài liệu bằng các phím phân đoạn tăng dần đều, tất cả các phần chèn đều giống nhau trên một. Hệ thống cuối cùng sẽ phân chia phạm vi khối nhận tất cả các thao tác ghi và di chuyển nội dung của nó để phân phối dữ liệu đồng đều hơn. Tuy nhiên, tại bất kỳ thời điểm nào, cụm chỉ hướng các hoạt động chèn vào một phân đoạn duy nhất, điều này tạo ra tắc nghẽn thông lượng chèn
Nếu các hoạt động trên cụm chủ yếu là hoạt động đọc và cập nhật, giới hạn này có thể không ảnh hưởng đến cụm
Để tránh ràng buộc này, hãy sử dụng một hoặc chọn một trường không tăng hoặc giảm một cách đơn điệu
在 2. 4 版更改. và lưu trữ giá trị băm của các khóa có giá trị tăng dần.
hoạt động
Hoạt động sắp xếpNếu MongoDB không thể sử dụng chỉ mục để lấy tài liệu theo thứ tự sắp xếp được yêu cầu, thì kích thước tổng hợp của tất cả tài liệu trong thao tác sắp xếp, cộng với một chi phí nhỏ, phải nhỏ hơn 32 megabyte
Vận hành đường ống tổng hợp在 2. 6 版更改
Giai đoạn quy trình có giới hạn là 100 megabyte RAM. Nếu một giai đoạn vượt quá giới hạn này, MongoDB sẽ tạo ra lỗi. Để cho phép xử lý các tập dữ liệu lớn, hãy sử dụng tùy chọn allowDiskUse để bật các giai đoạn đường ống tổng hợp nhằm ghi dữ liệu vào các tệp tạm thời.
参见
và
Truy vấn không gian địa lý 2d không thể sử dụng toán tử $orThấy
and 2d 索引原理
Diện tích đa giác GeoJSONĐối với hoặc , nếu bạn chỉ định một đa giác một vòng có diện tích lớn hơn một bán cầu, hãy bao gồm biểu thức; . Đối với tất cả các đa giác GeoJSON khác có diện tích lớn hơn bán cầu hoặc truy vấn cho hình học bổ sung
Viết Lệnh Thao tác Giới hạn Kích thướcLệnh ghi có thể chấp nhận không quá 1000 thao tác. Các hoạt động trong trình bao và các phương thức tương đương trong trình điều khiển không có giới hạn này
Lượt xemNgoài việc chỉ đọc, các dạng xem có các hạn chế hoạt động sau
- Bạn không thể đổi tên chế độ xem
- các thao tác trên các khung nhìn không hỗ trợ các toán tử chiếu sau
- Chế độ xem không hỗ trợ tìm kiếm văn bản
- Chế độ xem không hỗ trợ các thao tác thu nhỏ bản đồ
- Chế độ xem không hỗ trợ hoạt động GeoNear [i. e. giai đoạn lệnh và đường ống]
← Thông số máy chủ MongoDB Giải thích kết quả →
© MongoDB, Inc 2008-2017. MongoDB, Mongo và logo chiếc lá là các nhãn hiệu đã đăng ký của MongoDB, Inc