- क्वेरी परफ़ॉर्मेंस बेहतर करने के लिए इंडेक्स सुझाने वाला PostgreSQL एक्सटेंशन, Supabase द्वारा
index_advisor() फ़ंक्शन में क्वेरी देने पर startup/total के लिए पहले/बाद की लागत और इंडेक्स बनाने के लिए SQL DDL लौटाता है
- चलाना:
select * from index_advisor('select book.id from book where title = $1');
- रिटर्न:
{"CREATE INDEX ON public.book USING btree (title)"}
- जटिल क्वेरी के लिए कई इंडेक्स creation statements भी लौटा सकता है
- generic parameters का समर्थन ($1, $2, ..)
- Materialized View का समर्थन
- view के पीछे छिपी tables/columns की पहचान कर सकता है
3 टिप्पणियां
फ़िलहाल यह सिर्फ़ एकल-column btree index की सिफारिश करता है। अगर query conditions ज़्यादा जटिल हों या आप full text search कर रहे हों, तो इसका उपयोग नहीं किया जा सकता https://supabase.com/docs/guides/…
कहा जाता है कि जब query conditions जटिल हों, तो multi-column index की जगह कई single-column indexes इस्तेमाल किए जाते हैं, लेकिन लगता है कि वे बिल्कुल वही तरीके से काम नहीं करते। या फिर ऐसी स्थिति भी हो सकती है जहाँ multi-column index और कई single-column indexes को एक साथ इस्तेमाल करना सबसे अच्छा हो
https://www.postgresql.org/docs/current/indexes-bitmap-scans.html
Hacker News प्रतिक्रियाएँ
index_advisor(text)function को session में कॉपी करके hard-coding और heuristics शुरू कर देने का मन होता है