2013-02-07 28 views
5

Nếu có thể, tôi muốn chạy tìm kiếm & xóa truy vấn trên các cột không được lập chỉ mục trong "nền", không làm phiền các tác vụ khác hoặc làm cạn kiệt bộ nhớ để gây tổn hại cho người khác.Công việc nền mongodb

Để lập chỉ mục, có một cờ nền. Có thể cùng được nối thêm để tìm/xóa nhiệm vụ không?

Cảm ơn bạn đã tip

+0

Không xa như tôi biết và ý bạn là gì bằng cách xóa các cột không được lập chỉ mục? Điều đó có nghĩa là bạn không xóa toàn bộ hàng nhưng thay vì sử dụng toán tử trong bộ nhớ để xóa cột? Ngoài ra các cột không được lập chỉ mục nên xóa dưới dạng qwuick như các cột được lập chỉ mục cung cấp tìm kiếm cho việc xóa sử dụng chỉ mục. – Sammaye

+0

Tôi sẽ tìm một trường không phải chỉ mục, ví dụ: .find ({i_am_not_indexed: "target"}) và xóa hoàn toàn các tài liệu phù hợp. việc này mất vài phút. điều này là ổn, bởi vì nó không phải là một nhiệm vụ cấp bách, nhưng nó đang làm chậm các nhiệm vụ mongo khác. đó là lý do tại sao tôi tìm một cái gì đó như nền: đúng .. – ledy

+0

Ah tôi thấy bây giờ, xin lỗi tôi biết không có cách nào. Tôi nghĩ về việc sử dụng các bản sao như một phương thức ưu tiên nhưng nó sẽ không hoạt động do việc thực hiện sao chép trong MongoDB – Sammaye

Trả lời

2

Đây không phải là điều bạn có thể sử dụng "nền: true" cho. Có lẽ cách tốt nhất để xử lý điều này là viết một kịch bản thực hiện điều này trong nền. Tập lệnh này sẽ chạy hoạt động của bạn theo lô nhỏ với một số chậm trễ ở giữa. Trong mã giả bạn sẽ làm gì:

  • tìm 10 tài liệu bạn cần cập nhật
  • cập nhật những tài liệu 10
  • ngủ
  • goto bước đầu tiên.

Bạn sẽ phải thử nghiệm xem giá trị nào cho hoạt động của chế độ ngủ. Bạn cần phải nhận ra rằng tất cả các tài liệu mà bạn đang cập nhật cần phải được kéo vào bộ nhớ, vì vậy nó sẽ có ít nhất một số tác động.

2

Không, không có nền: cờ thực sự cho hoạt động này. Việc xóa sẽ sinh ra khi lỗi trang xảy ra và cho phép các thao tác khác thực thi. Nếu bạn cần phải điều tiết này, sau đó bạn có thể loại bỏ trong lô nhỏ hơn hoặc sử dụng một mô hình tìm/loại bỏ sẽ làm giảm tác động đến các hoạt động khác.

+0

điều tương tự cũng xảy ra với .find (không loại bỏ). cũng không có cách giải quyết nào cho nhiệm vụ có mức độ ưu tiên thấp này? – ledy

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