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

MongoDB:Tìm thời gian thực thi lệnh count () trên hàng triệu bản ghi trong một tập hợp?

MongoDB có một profiller tích hợp sẵn mà bạn có thể kích hoạt thông qua:

db.setProfilingLevel(2)

Thay vì '2', bạn có thể chọn bất kỳ tùy chọn nào từ danh sách bên dưới:

  • 0 - trình biên dịch tắt, không thu thập bất kỳ dữ liệu nào. mongod luôn ghi các hoạt động lâu hơn ngưỡng slowOpThresholdMs vào nhật ký của nó.
  • 1 - chỉ thu thập dữ liệu hồ sơ cho các hoạt động chậm. Theo mặc định, các hoạt động chậm là những hoạt động chậm hơn 100 mili giây. Bạn có thể sửa đổi ngưỡng cho các hoạt động “chậm” bằng tùy chọn thời gian chạy slowOpThresholdMs hoặc lệnh setParameter. Xem phần Chỉ định ngưỡng cho hoạt động chậm để biết thêm thông tin.
  • 2 - thu thập dữ liệu hồ sơ cho tất cả các hoạt động cơ sở dữ liệu.

Và bạn có thể xem kết quả truy vấn của mình bằng cách kiểm tra system.profile bộ sưu tập trong MongoDB ..

CHỈNH SỬA:

Nếu bạn muốn kiểm tra hiệu suất, bạn có thể sử dụng các đoạn mã sau đây có thể được thực thi từ bảng điều khiển mongo:

> for (var i = 0; i < 10000000; ++i) { db.countTest.insert({a: i % 10}) }
> db.countTest.ensureIndex({a:1})
> db.countTest.count({a: 1})
> db.countTest.count()
> db.countTest.find().count()

Và kết luận của tôi như sau:

  1. thêm chỉ mục (ứng dụng từ id) đã trả về số lượng cho 10 triệu bản ghi trong khoảng 170 mili giây
  2. đếm theo id (đếm mà không có bất kỳ truy vấn nào) trả về số lượng trong dưới một phần nghìn giây
  3. đếm theo id với con trỏ (lưu ý rằng .find () sẽ hoạt động như một con trỏ trên bộ sưu tập) đã trả về số lượng trong chưa đầy một phần nghìn giây

Vì vậy, nhiều chỉ mục hơn bộ sưu tập của bạn có truy vấn của bạn sẽ chậm hơn . Nếu bạn đếm bằng _ thì nó sẽ ngay lập tức , nếu bạn có chỉ mục tổng hợp nó sẽ mở rộng quy mô dựa trên số lượng chỉ mục .



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB vs CouchDB (Tối ưu hóa tốc độ)

  2. Các tùy chọn tìm kiếm toàn văn bản để thiết lập MongoDB

  3. Cách bắt ngoại lệ khi tạo cá thể MongoClient

  4. Nhóm Mongodb và sắp xếp

  5. Cách hiệu quả để lưu trữ dữ liệu trong MongoDB:tài liệu nhúng so với tài liệu riêng lẻ