2013-04-17 18 views
6

Tôi nghe nói rằng các kích thước lô lớn không thực sự cung cấp thêm bất kỳ hiệu suất bổ sung nàoSố mục hàng loạt tối ưu với phương pháp InsertBatch trong trình điều khiển mongodb C# là gì?

tối ưu là gì?

+0

Không có tham chiếu đến nơi bạn đã nghe? Hmm, tôi thường nói bất cứ điều gì phù hợp với một không gian 16meg (tối đa)? – Sammaye

+0

Tôi đã mở một vấn đề trong jira và nó đã được đề cập trong các ý kiến ​​https://jira.mongodb.org/browse/CSHARP-725 – Serdar

+0

Ok tôi nghĩ rằng tôi hiểu, bạn đang cho một chèn hàng loạt gọi với kích thước tài liệu lớn hơn 16meg , đó là những gì Robert đang nói cũng như để whehter lô lớn giúp phụ thuộc vào cách làm sạch dữ liệu của bạn, nếu nó liên tục quay trở lại khách hàng vì lỗi sau đó nó sẽ được performant hơn để chạy lô nhỏ hơn (như ông nói một lần nữa). Số lượng tối ưu ở đây: hmm, có thể là 100 trong một đợt? – Sammaye

Trả lời

7

Nếu bạn gọi Chèn để chèn từng tài liệu vào một thời điểm có một chuyến đi vòng quanh mạng cho mỗi tài liệu. Nếu bạn gọi InsertBatch để chèn tài liệu theo lô có một chuyến đi vòng quanh mạng cho mỗi lô thay vì cho từng tài liệu. InsertBatch hiệu quả hơn Chèn bởi vì nó làm giảm số lượng các chuyến đi vòng quanh mạng.

Giả sử bạn có để chèn 1.000.000 tài liệu, bạn có thể phân tích số lượng các chuyến đi vòng mạng cho quy mô lô khác nhau:

  • kích thước hàng loạt 1: 1.000.000 chuyến đi vòng
  • kích thước hàng loạt 10: 100.000 chuyến đi vòng
  • hàng loạt kích thước 100: 10.000 vòng chuyến
  • hàng loạt kích thước 1000, 1000 chuyến đi vòng
  • vv ...

Vì vậy, bạn thấy rằng ngay cả kích thước lô nhỏ đến 10 đã loại bỏ 90% số chuyến đi vòng quanh mạng và kích thước lô 100 đã loại bỏ 99% số chuyến đi vòng quanh mạng.

Đây là một phân tích được đơn giản hóa vì nó bỏ qua thực tế là khi kích thước lô tăng lên do đó kích thước tin nhắn, nhưng nó ít nhiều chính xác.

Tôi không nghĩ rằng có bất kỳ kích thước lô tối ưu nào là một. Tôi sẽ nói rằng các lô lớn hơn có hiệu suất cao hơn, nhưng một khi bạn có 10-100 tài liệu mỗi lô sẽ có những cải tiến hiệu suất rất nhỏ với các lô lớn hơn.

Các vấn đề liên quan