Rất có thể bạn đang va phải cổ chai rất phổ biến trong MongoDB. Vì bạn cập nhật tài liệu rất thường xuyên bằng cách thêm chuỗi, nên có nhiều khả năng là bạn sắp hết dung lượng cho tài liệu đó và buộc cơ sở dữ liệu phải liên tục di chuyển tài liệu đó sang một không gian khác trong bộ nhớ \ disk bằng cách viết lại nó ở phần cuối của tệp dữ liệu.
Việc thêm chỉ mục chỉ có thể làm ảnh hưởng đến hiệu suất ghi, điều đó sẽ không giúp cải thiện hiệu suất trừ khi bạn đọc nặng.
Tôi sẽ xem xét việc thay đổi logic ứng dụng của bạn để thực hiện việc này:
- Lập chỉ mục trên trường từ khoá
- Trước khi chèn bất kỳ thứ gì vào cơ sở dữ liệu mỗi khi bạn phát hiện một tweet, hãy truy vấn tài liệu có chứa từ khóa. Nếu nó không tồn tại, hãy chèn một tài liệu mới nhưng chèn các
ids
bằng cách thêm toàn bộ chuỗi giả vào mảng. Sau đó, ngay sau khi chèn nó, hãy xóa tất cả id khỏi mảng đó. Điều này sẽ khiến mongodb phân bổ thêm không gian cho toàn bộ tài liệu đó để khi bạn bắt đầu thêm id vào trường id, nó sẽ có nhiều chỗ để phát triển. - Chèn id của tweet vào
ids
lĩnh vực