Tôi đang sử dụng BulkWriteOperation (trình điều khiển java) để lưu trữ dữ liệu theo khối lớn. Lúc đầu nó có vẻ là làm việc tốt, nhưng khi bộ sưu tập phát triển về kích thước, các chèn có thể mất khá nhiều thời gian.Hiệu suất chèn hàng loạt trong MongoDB cho các bộ sưu tập lớn
Hiện tại đối với bộ sưu tập 20 triệu tài liệu, việc chèn hàng loạt 1000 tài liệu có thể mất khoảng 10 giây.
Có cách nào để làm cho chèn độc lập với kích thước bộ sưu tập không? Tôi không có bất kỳ cập nhật hoặc up ups nào, nó luôn là dữ liệu mới mà tôi đang chèn vào.
Đánh giá từ nhật ký, dường như không có bất kỳ sự cố nào với khóa. Mỗi tài liệu có một trường thời gian được lập chỉ mục, nhưng nó đang phát triển tuyến tính vì vậy tôi không thấy bất kỳ nhu cầu nào về mongo để dành thời gian tổ chức lại các chỉ mục.
Tôi muốn nghe một số ý tưởng để cải thiện hiệu suất
Cảm ơn
Bạn đã từng nghĩ về việc sharding? Hiệu suất phụ thuộc vào rất nhiều tham số như kích thước tài liệu, dữ liệu ban đầu, hw, thiết lập cụm vv Ngoài ra kiểm tra xem có thể sử dụng mongoimport hay không. trong khi chèn inserto xác nhận đối tượng json, nếu tài liệu của bạn lớn thì việc xác nhận cũng sẽ mất thời gian và có thể cản trở hiệu năng trong những trường hợp như vậy, vô hiệu hóa việc xác nhận đó cũng có thể giúp, nhưng tăng sẽ nhỏ nếu tài liệu có kích thước nhỏ. –
Hiệu suất khi bộ sưu tập có kích thước 2 triệu tài liệu là gì? Và các chỉ số nào được thiết lập trên bộ sưu tập, kích thước tài liệu mới trung bình là gì, phương tiện vật lý là gì và RAM của chính là gì? Ruột của tôi nói rằng một cơ sở hạ tầng quy mô nhỏ hơn bây giờ đã phải đối phó với một khối lượng công việc lớn hơn .... –
Bạn đã cân nhắc viết số lượng lớn song song chưa? –