MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Phân tích các truy vấn chậm trong MongoDB

Chúng tôi vui mừng thông báo với mọi người về sự sẵn có của trình phân tích truy vấn chậm của chúng tôi cho MongoDB! Sử dụng trình phân tích truy vấn chậm, bạn có thể nhanh chóng xác định các truy vấn chậm trên bất kỳ máy chủ nào của mình trong một khoảng thời gian cụ thể. Theo mặc định, "truy vấn chậm" được định nghĩa là các truy vấn mất nhiều hơn 100 mili giây.

Bản đồ nhiệt truy vấn chậm

Bản đồ nhiệt cung cấp cho bạn cái nhìn tổng quan trực quan nhanh chóng về các truy vấn chậm trong hệ thống của bạn. Trục tung của biểu đồ là thời gian hàm mũ. Điều này có nghĩa là bong bóng càng cao trong biểu đồ, truy vấn càng chậm (theo thứ tự độ lớn) - vì vậy, hãy để ý đến các bong bóng luôn ở đầu biểu đồ của bạn. Bạn cũng có thể nhấp vào bong bóng để xem chi tiết của truy vấn cơ bản.

Các truy vấn cùng loại có cùng màu. Điều này cho phép bạn dễ dàng xác định các mẫu trong các truy vấn chậm của mình. Bạn cũng có thể chọn các phần của biểu đồ để phóng to trong một phạm vi thời gian cụ thể.

Ví dụ. Trong ví dụ trên, bạn có thể thấy một cụm các chấm màu đỏ đang chiếm 10 giây +. Bạn cũng có thể thấy rằng công việc nền đang chạy mỗi giờ một lần sẽ mất 28 giây để thực thi. Bạn có thể nhấp vào điểm dữ liệu để nhận truy vấn thực tế.

Bảng dữ liệu truy vấn chậm

Bảng dữ liệu truy vấn chậm cung cấp cho bạn chế độ xem dạng bảng của tất cả dữ liệu truy vấn chậm. Các bảng dữ liệu hiển thị một số chỉ số quan trọng về các truy vấn chậm của bạn:

  • Loại - Loại truy vấn - truy vấn, chèn, cập nhật, loại bỏ, v.v.
  • Cơ sở dữ liệu &bộ sưu tập - Db và bộ sưu tập của truy vấn
  • Truy vấn - Truy vấn thực tế với các tham số truy vấn đã bị loại bỏ
  • Đếm - Số lần truy vấn được chạy trong khoảng thời gian đã chọn
  • nScanned - Số mục được quét trong chỉ mục + số đối tượng được quét từ bộ sưu tập
  • Thời lượng (mili giây) - Thời gian thực hiện trung bình của truy vấn tính bằng mili giây
  • Độ dài phản hồi (byte) - Độ dài phản hồi trung bình của truy vấn tính bằng byte
  • n Đã quay lại - Số lượng tài liệu trung bình được trả về mỗi lần thực hiện truy vấn
  • Khóa đọc (micro giây) - Thời gian khóa đọc trung bình tính bằng micro giây
  • Khóa ghi (micro giây) - Thời gian khóa ghi trung bình tính bằng micro giây

Bạn có thể sắp xếp bảng truy vấn chậm theo bất kỳ cột nào ở trên để tạo chế độ xem bạn cần. Dữ liệu truy vấn cũng có thể được tải xuống Excel để phân tích. Nhấp vào liên kết "Tải xuống dữ liệu dưới dạng csv" để tải xuống dữ liệu truy vấn chậm và thực hiện phân tích tùy chỉnh của bạn trong Excel.

Để dễ dàng xác định các truy vấn vấn đề, chúng tôi cung cấp một số chế độ xem tích hợp sẵn.

Truy vấn chậm được sắp xếp theo "Thường xuyên nhất"

Dạng xem này trình bày (theo thứ tự giảm dần) các truy vấn được thực hiện thường xuyên nhất trong hệ thống. Bạn muốn đặc biệt chú ý đến các truy vấn hàng đầu trong danh sách. Nếu giá trị nScanned của chúng cao hoặc thời lượng nhiều, bạn cần thêm chỉ mục thích hợp cho truy vấn này. Điều này làm giảm số lượng tài liệu được quét từ đĩa.

Truy vấn chậm được sắp xếp theo "Số tài liệu / chỉ mục tối đa được quét"

Dạng xem này trình bày (theo thứ tự giảm dần) các truy vấn đang quét các mục nhập chỉ mục nhất hoặc nhiều tài liệu nhất trong một bộ sưu tập. Giá trị ‘nScanned’ cao ngụ ý rằng bạn không có chỉ mục hoặc bạn không có chỉ mục phù hợp. Có thể không thể thêm chỉ mục cho mọi truy vấn trong hệ thống - nhưng bạn nên đảm bảo rằng ít nhất các truy vấn tần suất cao của bạn đều được lập chỉ mục tốt.

Truy vấn chậm được sắp xếp theo "Truy vấn chậm nhất"

Dạng xem này trình bày (theo thứ tự giảm dần) các truy vấn đang chiếm thời gian tối đa để thực thi. Nếu truy vấn không thường xuyên chạy thì bạn có thể quyết định xem mình có muốn tối ưu hóa nó hay không.

Truy vấn chậm được sắp xếp theo "Số tài liệu tối đa được trả về"

Chế độ xem này trình bày (theo thứ tự giảm dần) các truy vấn đang trả về nhiều kết quả nhất. Việc trả về nhiều kết quả thường dẫn đến tình trạng tải mạng trên hệ thống. Bạn cũng nên đảm bảo rằng bạn chỉ trả lại các trường bạn cần từ tài liệu chứ không phải tất cả các trường.

Truy vấn chậm được sắp xếp theo “Khóa đọc”

Chế độ xem này trình bày (theo thứ tự giảm dần) các truy vấn đang tiêu tốn thời gian khóa đọc tối đa tính bằng giây. Nếu bạn đang sử dụng công cụ lưu trữ WiredTiger, đây thường không phải là vấn đề vì WiredTiger sử dụng khóa cấp độ tài liệu.

Truy vấn chậm được sắp xếp theo "Khóa ghi"

Dạng xem này trình bày (theo thứ tự giảm dần) các truy vấn đang tiêu tốn thời gian khóa ghi tối đa tính bằng giây. Nếu bạn đang sử dụng công cụ lưu trữ WiredTiger, đây thường không phải là vấn đề vì WiredTiger sử dụng khóa cấp độ tài liệu.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cách nhận tất cả kết quả nếu trường unwind không tồn tại trong mongodb

  2. MapReduce với MongoDB thực sự rất chậm (30 giờ so với 20 phút trong MySQL cho cơ sở dữ liệu tương đương)

  3. Cách định dạng số bằng dấu phẩy trong SQL

  4. tạo giản đồ mongoose

  5. MongoDB và MySQL