Kích thước tối đa của tài liệu trong MongoDB là bao nhiêu?

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 BSON

MongoDB 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ường

Vì 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ệu

Tê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ập

Tê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ường

Tê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ục

Tổ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.

Số lượng chỉ mục trên mỗi bộ sưu tập

Một bộ sưu tập có thể có không quá 64 chỉ mục

Tên chỉ mục Độ dài

Tê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>. tên>. $ name> ), không được dài hơn 128 ký tự.

Theo mặc định, name> 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 name> 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ợp

Khô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ọc

Cá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 double

Nế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ím

A 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ệu

Cô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 terabyte

Cô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 sao

Bộ 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ảnh

Khô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ảnh

Mộ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) / <average size of shard key values in 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ển

MongoDB 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ảnh

Khóa phân đoạn không thể vượt quá 512 byte

Loại chỉ mục khóa phân đoạn

Chỉ 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ến

Nế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
Giá trị khóa phân đoạn trong tài liệu là bất biến

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
Việc tăng các phím Shard một cách đơn điệu có thể hạn chế thông lượng chè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ếp

Nế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.

参见

Truy vấn không gian địa lý 2d không thể sử dụng toán tử $or

Thấ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ước

Lệ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 xem

Ngoà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

MongoDB có thể lưu trữ các tệp lớn không?

Các đối tượng lớn hay còn gọi là "tệp" được lưu trữ dễ dàng trong MongoDB . Không có vấn đề gì khi lưu trữ video 100MB trong cơ sở dữ liệu. Điều này có một số lợi thế so với các tệp được lưu trữ trong một hệ thống tệp. Không giống như một hệ thống tệp, cơ sở dữ liệu sẽ không gặp vấn đề gì khi xử lý hàng triệu đối tượng.

Kích thước giao dịch tối đa trong MongoDB là bao nhiêu?

Giới hạn kích thước Oplog . Điều này loại bỏ 16 MB giới hạn kích thước tổng cho một giao dịch được áp đặt bởi một mục nhập oplog cho tất cả các hoạt động ghi của nó.

Kích thước mặc định của tài liệu trong MongoDB là gì?

Mỗi đoạn sẽ lưu trữ trong các tài liệu riêng biệt, vì vậy kích thước của mỗi tài liệu là 255 KB . Kích thước mặc định của khối GridFS trong MongoDB là 255 KB, theo thứ tự GridFS sẽ chia tài liệu của chúng tôi thành số khối tệp. MongoDB GridFS đang sử dụng hai bộ sưu tập để lưu trữ loại tài liệu này.

MongoDB có thể xử lý dữ liệu lớn không?

Do những yêu cầu đặc biệt này, Cơ sở dữ liệu NoSQL (không liên quan), chẳng hạn như MongoDB, là một lựa chọn hiệu quả để lưu trữ dữ liệu lớn .