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

PostgreSQL và MongoDB Ở đâu trong điều kiện

Sự khác biệt về thời gian thực thi truy vấn là do lần thực thi đầu tiên phải đọc nhiều khối 8kB hơn từ đĩa:so sánh shared read=631496shared read=30359 .

PostgreSQL quyết định không sử dụng chỉ mục cho WHERE điều kiện, nhưng chỉ mục hỗ trợ ORDER BY . Lưu ý rằng vì IN không thể sử dụng một chỉ mục cho cả WHERE điều kiện và ORDER BY - điều đó chỉ có thể thực hiện được đối với WHERE các điều kiện sử dụng = làm toán tử so sánh.

Vì vậy, PostgreSQL phải đưa ra lựa chọn và có thể nó đã chọn sai:vì số liệu thống kê của nó cho trình tối ưu hóa biết rằng có nhiều hàng đáp ứng WHERE điều kiện, nó quyết định đọc các hàng trong ORDER BY đặt hàng và loại bỏ những cái không khớp với WHERE điều kiện cho đến khi nó đã tìm thấy 100 hàng kết quả. Thật không may, có vẻ như các hàng phù hợp không gần với đầu bảng và PostgreSQL phải quét nhiều hàng (Rows Removed by Filter: 17276154 ).

Để làm cho nó sử dụng quét chỉ mục cho WHERE điều kiện, sửa đổi ORDER BY để PostgreSQL không thể sử dụng chỉ mục cho nó:

ORDER BY datetime + INTERVAL '0 seconds' DESC

Vì không sử dụng chỉ mục nhiều cột ở đây, chỉ mục tốt nhất sẽ là

CREATE INDEX ON report (sensor_id);


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cách lập trình phân tách trước một khóa phân đoạn dựa trên GUID với MongoDB

  2. Có bình thường khi có vô số kết nối giữa nút và mongo khi sử dụng mongoose không?

  3. Bộ sưu tập dựa trên nhiều hợp đồng thuê nhà trong dữ liệu mùa xuân mongo

  4. Tại sao express nói với tôi rằng công cụ xem mặc định của tôi không được xác định?

  5. Nâng cấp mongodb không có tác dụng và vẫn hiển thị phiên bản cũ