- ส่วนขยาย PostgreSQL โดย Supabse ที่แนะนำดัชนีเพื่อปรับปรุงประสิทธิภาพของคิวรี
- เมื่อส่งคิวรีให้ฟังก์ชัน
index_advisor() จะคืนค่าต้นทุนก่อน/หลังสำหรับการสแกนแบบสตาร์ทอัป/ทั้งหมด และ SQL DDL สำหรับสร้างดัชนี
- การใช้งาน:
select * from index_advisor('select book.id from book where title = $1');
- ค่าที่คืน:
{"CREATE INDEX ON public.book USING btree (title)"}
- สำหรับคิวรีที่ซับซ้อน อาจคืนคำสั่งสร้างดัชนีหลายรายการ
- รองรับ generic parameter ($1, $2, ..)
- รองรับ Materialized View
- สามารถระบุตาราง/คอลัมน์ที่ถูกซ่อนอยู่โดย view ได้
3 ความคิดเห็น
เวอร์ชันปัจจุบันแนะนำได้เฉพาะดัชนี
btreeแบบคอลัมน์เดียวเท่านั้น หากเงื่อนไขการค้นหาซับซ้อนขึ้นหรือกำลังใช้การค้นหาแบบ full text ก็จะไม่สามารถใช้งานได้ https://supabase.com/docs/guides/…ได้ยินมาว่าในกรณีที่เงื่อนไขการค้นหาซับซ้อน ระบบอาจใช้ดัชนีแบบคอลัมน์เดี่ยวหลายตัวแทนดัชนีหลายคอลัมน์ แต่ดูเหมือนว่าจะไม่ได้ทำงานได้เหมือนกันทุกประการ หรือบางทีก็มีการบอกว่ามีสถานการณ์ที่การใช้ทั้งดัชนีหลายคอลัมน์และดัชนีแบบคอลัมน์เดี่ยวหลายตัวพร้อมกันเป็นทางเลือกที่ดีที่สุด
https://www.postgresql.org/docs/current/indexes-bitmap-scans.html
ความเห็นจาก Hacker News
index_advisor(text)เข้าไปใน session แล้วเริ่ม hardcode กับ heuristic ทันที