Tại sao các truy vấn MongoDB của tôi thực sự, rất chậm?


9

Tôi đã thừa hưởng một máy chủ MongoDB lớn tại nơi làm việc và đã được giao nhiệm vụ tìm hiểu tại sao các truy vấn chạy với nó quá chậm. DB chứa hàng tấn và hàng tấn bản ghi (theo thứ tự 10 ^ 9) và chiếm khoảng 300 GiB. Lúc đầu, tôi nghĩ rằng số lượng hồ sơ thô có thể là thủ phạm, vì vậy tôi đã thiết lập các chỉ số trên các lĩnh vực thích hợp. Nó giúp ích rất nhiều cho các truy vấn đang tìm kiếm các tiêu chí trong DB, nhưng sẽ mất khoảng 80-90 phút cho các truy vấn không có kết quả khớp. Bất kỳ ý tưởng về làm thế nào để giải quyết điều này?


1
Phiên bản nào của MongoDB? Phần cứng gì? Có bao nhiêu mảnh vỡ?
Rob Olmos

2
Ôi, nỗi đau của vấn đề Kế thừa ...
gWaldo

Câu trả lời:


5

Có vẻ như bạn đang thiếu một chỉ mục quan trọng, đặc biệt vì truy vấn không có kết quả trùng khớp sẽ mất nhiều thời gian hơn so với truy vấn có kết quả khớp. Đó là loại truy vấn nào? Có lẽ bạn cần một chỉ số ghép? Bạn đang sử dụng wherenhư một phần của truy vấn?

Tôi không phải là chuyên gia về MongoDB, nhưng 80-90 phút là hoàn toàn bất thường. Tôi không biết MongoDB "nghe như thế nào" đối với Arenstar, nhưng nó đã được hiển thị để xử lý hàng tỷ tài liệu (terabyte dữ liệu) .


4

Điều này có thể là quá muộn cho một câu trả lời, nhưng tôi nghĩ rằng nó đáng được đề cập. Có những công cụ như monguler có thể được sử dụng để xem những gì thực sự đang diễn ra. Quá nhiều chỉ số bỏ lỡ, quá nhiều lỗi trang. Nếu bạn đang chạy các hoạt động đọc và ghi đồng thời, thì bạn cũng nên tìm phần trăm khóa. 300 GB không phải là số tiền quá lớn để mongodb xử lý. Nó có thể dễ dàng đi xa hơn thế.

Các lệnh hữu ích khác:

    db.stats();
    db.currentOp();


-5

MongoDb là webscale .. Xin lỗi phải nói rằng ..

Không có trận đấu nào có thể mất một lúc dựa trên có lẽ là quét phạm vi ???

Tôi sẽ phá vỡ nó .. Mongo không giống như một DB để xử lý 300gb và có lẽ vẫn chưa đủ chín chắn để biết nó hoạt động như thế nào với lượng dữ liệu lớn ..

Vì lý do gì bạn đang sử dụng Mongo ??


Thật không may, đó là điều mà anh chàng trước tôi (người đã rời đi) cảm thấy thoải mái khi sử dụng và thật không may. Về mặt tươi sáng, chúng tôi mở cho các đề xuất DB mới.
Đánh dấu LeMoine

Bạn đang lưu trữ dữ liệu gì ??? tất cả là về cơ sở hạ tầng của bạn
Arenstar

Đó là các bản ghi logfile nhỏ, mỗi bản ghi chứa ID (int), tên máy chủ (chuỗi), tải trọng thư (chuỗi), ngày và địa chỉ IP. Tôi hiện có chỉ số về ID và tên máy chủ.
Đánh dấu LeMoine

8
Có rất nhiều công ty đang sử dụng mongodb. 300g là có thể thực hiện được, hãy hỏi những người ở trang mạng, wordnik và boxedice có rất nhiều dữ liệu. nếu bất cứ điều gì, các chỉ số là không chính xác. Tôi sẽ kiểm tra chúng trước khi bạn lấy ra DB và thay thế nó bằng thứ khác.
luckytaxi

1
@Arenstar: Webscale có nghĩa là gì? Và nó khác với bất kỳ quy mô nào khác?
Joshua Partogi
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.