- Tiện ích mở rộng PostgreSQL của Supabse giúp gợi ý các chỉ mục để cải thiện hiệu năng truy vấn
- Khi truyền một truy vấn vào hàm
index_advisor(), nó sẽ trả về chi phí trước/sau đối với startup/tổng thể và câu lệnh SQL DDL để tạo chỉ mục
- Thực thi:
select * from index_advisor('select book.id from book where title = $1');
- Trả về:
{"CREATE INDEX ON public.book USING btree (title)"}
- Với các truy vấn phức tạp, công cụ cũng có thể trả về nhiều câu lệnh tạo chỉ mục
- Hỗ trợ tham số generic ($1, $2, ..)
- Hỗ trợ Materialized View
- Có thể nhận diện bảng/cột bị che khuất bởi view
3 bình luận
Ở phiên bản hiện tại, công cụ này chỉ đề xuất chỉ mục btree cho một cột. Nếu điều kiện truy vấn trở nên phức tạp hơn hoặc bạn đang dùng tìm kiếm toàn văn, thì không thể sử dụng được. https://supabase.com/docs/guides/…
Mình nghe nói khi điều kiện truy vấn phức tạp thì thay vì chỉ mục đa cột, hệ thống sẽ dùng nhiều chỉ mục đơn cột, nhưng có vẻ chúng không hoạt động hoàn toàn giống nhau. Hoặc cũng có trường hợp tốt nhất là dùng đồng thời chỉ mục đa cột và nhiều chỉ mục đơn cột
https://www.postgresql.org/docs/current/indexes-bitmap-scans.html
Ý kiến Hacker News
jointrở lên, tôi muốn một relation sử dụng chỉ mục, nhưng nếu không đặtlimittrong CTE thì Postgres sẽ cố chạy từng phépjoinsong song và tìm cáchjoinmột lượng lớn hàngindex_advisor(text)vào session rồi bắt đầu hard-code và thêm heuristic