Thật khó để nói những gì chèn số lượng lớn tối ưu là - điều này một phần phụ thuộc vào kích thước của các đối tượng bạn đang chèn và các yếu tố không thể đo lường khác. Bạn có thể thử một vài phạm vi và xem điều gì mang đến cho bạn hiệu suất tốt nhất. Thay vào đó, một số người thích sử dụng mongoimport, điều này khá nhanh, nhưng dữ liệu nhập của bạn cần phải là json hoặc csv. Rõ ràng là mongodrestore, nếu dữ liệu ở định dạng BSON.
Mongo có thể dễ dàng xử lý hàng tỷ tài liệu và có thể có hàng tỷ tài liệu trong một bộ sưu tập nhưng hãy nhớ rằng maximum document size is 16mb. Có rất nhiều dân gian với hàng tỷ tài liệu trong MongoDB và có rất nhiều cuộc thảo luận về nó trên MongoDB Google User Group. Dưới đây là một số document về việc sử dụng một số lượng lớn các bộ sưu tập mà bạn có thể muốn đọc, nếu bạn thay đổi ý định và muốn có nhiều bộ sưu tập thay thế. Bạn càng có nhiều bộ sưu tập, bạn càng có nhiều chỉ mục hơn, điều này có thể không phải là thứ bạn muốn.
Đây là một presentation từ Craigslist khi chèn hàng tỷ tài liệu vào MongoDB và của anh chàng blogpost. Nó giống như sharding sẽ là một giải pháp tốt cho bạn nhưng thường sharding được sử dụng để mở rộng trên nhiều máy chủ và rất nhiều dân gian làm điều đó bởi vì họ muốn quy mô viết của họ hoặc họ không thể giữ bộ làm việc của họ (dữ liệu và chỉ mục) trong RAM. Nó là hoàn toàn hợp lý để bắt đầu với một máy chủ duy nhất và sau đó di chuyển đến một mảnh vỡ hoặc bản sao thiết lập như dữ liệu của bạn phát triển hoặc bạn cần dư thừa thêm và khả năng phục hồi.
Tuy nhiên, có những người dùng khác sử dụng nhiều bộ điều khiển mong muốn để vượt qua giới hạn khóa của một chiếc máy bay nhỏ với nhiều lần ghi. Rõ ràng nhưng vẫn đáng nói nhưng một thiết lập đa mongod là phức tạp hơn để quản lý hơn một máy chủ duy nhất. Nếu IO hoặc CPU của bạn không được max ở đây, bộ làm việc của bạn nhỏ hơn RAM và dữ liệu của bạn dễ giữ cân bằng (phân phối khá ngẫu nhiên), bạn sẽ thấy cải tiến (với sharding trên một máy chủ). Là một FYI, có tiềm năng cho bộ nhớ và sự tranh chấp IO. Với 2,2 đã được cải thiện concurrency với db locking, tôi nghi ngờ rằng sẽ có ít hơn nhiều lý do cho việc triển khai như vậy.
Bạn cần lập kế hoạch di chuyển của bạn để sharding đúng cách, nghĩa là suy nghĩ cẩn thận về việc chọn khóa phân đoạn của bạn. Nếu bạn đi theo cách này thì tốt nhất là nên phân chia trước và tắt cân bằng. Nó sẽ phản tác dụng để di chuyển dữ liệu xung quanh để giữ cho mọi thứ cân bằng có nghĩa là bạn sẽ cần phải quyết định lên phía trước làm thế nào để phân chia nó. Ngoài ra, đôi khi điều quan trọng là phải thiết kế tài liệu của bạn với ý tưởng rằng một số trường sẽ hữu ích cho việc kích hoạt hoặc là khóa chính.
Dưới đây là một số liên kết tốt -
Nguồn
2012-07-05 10:44:05
Xem nếu câu trả lời này của tôi sẽ giúp bạn: http://stackoverflow.com/ câu hỏi/6783212/how-to-load-100-triệu-bản ghi-thành-mongodb-với-scala-cho-hiệu suất-te sting/6786925 # 6786925 – DhruvPathak