Nâng CaoPostgreSQL iconPostgreSQL

Index-only scan là gì và vì sao đôi khi không xảy ra?

Index-only scan đọc dữ liệu chỉ từ index nếu index chứa đủ columns cần trả và visibility map cho biết page có thể đọc mà không check heap. Nó giảm I/O nhưng không phải lúc nào planner cũng chọn.

Có thể hỗ trợ bằng covering index với INCLUDE:

sql
CREATE INDEX idx_orders_user_created
ON orders (user_id, created_at DESC) INCLUDE (total, status);

Nếu bảng update nhiều và visibility map chưa thuận lợi, PostgreSQL vẫn phải đọc heap, làm index-only scan kém hiệu quả.

Xem toàn bộ PostgreSQL cùng filter theo level & chủ đề con.

Mở danh sách PostgreSQL