Là shending hiệu quả cho các bộ sưu tập nhỏ?


11

Có vẻ như shending cơ sở dữ liệu là tuyệt vời nếu tôi có bộ sưu tập lớn. Nếu tôi có nhiều bộ sưu tập có kích thước khá thì sao? Chúng ta hãy nói rằng với 1 bộ sưu tập 100 000 000 tài liệu (không phải ý kiến ​​rất lớn) thì việc bảo vệ có hiệu quả. Có phải nó cũng hiệu quả đối với 10 000 bộ sưu tập với 10 000 tài liệu mỗi bộ?

. câu trả lời.)

Câu trả lời:


5

Có phải nó cũng hiệu quả đối với 10 000 bộ sưu tập với 10 000 tài liệu mỗi bộ?

Hầu hết mọi người đều gặp phải vấn đề "bộ sưu tập lớn" và do đó, shending rõ ràng rất hữu ích trong việc giảm đau đầu trong việc cân bằng dữ liệu này.

Tuy nhiên, khi bạn có 10 000 bộ sưu tập nhỏ, vấn đề đau đầu của bạn có lẽ không phải là "cân bằng dữ liệu". Với nhiều bộ sưu tập nhỏ này, vấn đề của bạn có thể là về việc theo dõi các bộ sưu tập này. Tùy thuộc vào kích thước tài liệu của bạn, bạn thậm chí có thể không phá vỡ giới hạn dưới để shending thực sự xảy ra.

Đối với các bộ sưu tập thực sự nhỏ, bạn có thể sử dụng lệnh movePrimary ít được biết đến để quản lý vị trí dữ liệu của bạn.

Tất nhiên, cách khác để xem xét điều này là tại sao bạn có bộ sưu tập 10k? Một bộ sưu tập không cần các đối tượng đồng nhất và với 10k bộ sưu tập, hầu hết chúng phải được tạo. Hoàn toàn có thể lưu trữ các "loại" dữ liệu khác nhau trong cùng một bộ sưu tập, giảm số lượng bộ sưu tập và sau đó bao gồm loại như một phần của khóa phân đoạn.


Cảm ơn, tôi đã chính xác cố gắng để biết liệu điều tốt nhất tôi có thể làm là loại bỏ hàng tấn bộ sưu tập này và tạo ra một bộ lớn. Trước đây tôi đã có rất nhiều bộ sưu tập vì tôi nghe thấy một niềm tin chung: "Bộ sưu tập khổng lồ rất tệ cho bạn vì các chỉ mục không phù hợp với RAM và sẽ rất chậm để truy vấn và cập nhật chúng". Nhưng tôi đoán shending đã được tạo ra để giải quyết vấn đề đó ... Cảm ơn !!
João Pinto Jerónimo

Thành thật mà nói, tôi thấy rằng bạn cũng có thể thường xuyên "gian lận" về các chỉ mục. Nếu bạn có hai bộ sưu tậpfoobarcó cùng cấu trúc dữ liệu, bạn có thể hợp nhất chúng vào bazbộ sưu tập và ghi đè _ids(trong mã) : { _id: "foo123" }, { _id: "bar123" }. Bạn có một chỉ mục lớn hơn, nhưng bạn chỉ có một chỉ mục bao gồm loại. Không phải là một yêu cầu, chỉ là "thức ăn cho suy nghĩ".
Gates VP

4

Việc bảo vệ MongoDB hoạt động bằng cách chia một bộ sưu tập thành các "khối" nhỏ hơn và phân chia chúng đồng đều trên một số máy. Kích thước khối mặc định, thường là hiệu quả nhất, là 200MB. Vì vậy, trừ khi một bộ sưu tập phát triển lớn hơn 200 MB, nó sẽ không được chia thành nhiều phần, và do đó sẽ không đủ điều kiện để bảo vệ, vì vậy sẽ không có lợi ích.

Trong trường hợp chung, việc bảo vệ dữ liệu trên nhiều máy là một cách rất hiệu quả để mở rộng quy mô đọc, ghi và truy vấn. Bạn nhận được lợi ích của nhiều CPU, đĩa cứng và bộ nhớ lưu trữ, hoạt động song song để đọc, ghi và xử lý dữ liệu. Thu nhỏ bộ nhớ đặc biệt quan trọng đối với MongoDB, trong đó hiệu năng cao rất nhạy cảm với việc khớp dữ liệu trong bộ nhớ.


Kích thước chunk mặc định của FYI là 64MB tính đến 1.8.
Gates VP
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.