PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Quét đống Bitmap trong một kế hoạch truy vấn là gì?

Lời giải thích tốt nhất đến từ Tom Lane, tác giả của thuật toán trừ khi tôi nhầm. Xem thêm bài viết trên wikipedia.

Nói tóm lại, nó hơi giống như quét seq. Sự khác biệt là, thay vì truy cập mọi trang đĩa, chỉ mục bitmap sẽ quét AND và OR các chỉ mục áp dụng cùng nhau và chỉ truy cập các trang đĩa mà nó cần.

Điều này khác với quét chỉ mục, trong đó chỉ mục được truy cập từng hàng theo thứ tự - nghĩa là một trang đĩa có thể được truy cập nhiều lần.

Re:câu hỏi trong bình luận của bạn ... Đúng, chính xác là vậy.

Quá trình quét chỉ mục sẽ đi qua từng hàng một, mở đi mở lại các trang đĩa nhiều lần nếu cần (một số tất nhiên sẽ nằm trong bộ nhớ, nhưng bạn hiểu được ý của mình).

Quét chỉ mục bitmap sẽ mở một cách tuần tự một danh sách ngắn các trang đĩa và lấy mọi hàng thích hợp trong mỗi hàng (do đó, cái gọi là kiểm tra lại cond mà bạn thấy trong các kế hoạch truy vấn).

Ngoài ra, hãy lưu ý, cách phân cụm / thứ tự hàng ảnh hưởng đến chi phí liên quan với một trong hai phương pháp. Nếu các hàng ở khắp nơi theo thứ tự ngẫu nhiên, chỉ mục bitmap sẽ rẻ hơn. (Và trên thực tế, nếu chúng thực sự là tất cả ở nơi khác, quét seq sẽ rẻ nhất, vì quét chỉ mục bitmap không phải là không có một số chi phí.)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL:Truy vấn không có đích cho dữ liệu kết quả

  2. Các phương pháp hay nhất về ghi nhật ký kiểm tra PostgreSQL

  3. Chia tỷ lệ PostgreSQL cho lượng lớn dữ liệu

  4. rake db:tạo cơ sở dữ liệu ném không tồn tại lỗi với postgresql

  5. PostgreSQL:Chọn dữ liệu có tương tự trên trường dấu thời gian