बहुत ही सरल उदाहरण - एक मेज, एक सूचकांक, एक क्वेरी:पोस्टग्रेएसक्यूएल अनुक्रमित कॉलम पर अनुक्रमिक स्कैन क्यों करता है?
CREATE TABLE book
(
id bigserial NOT NULL,
"year" integer,
-- other columns...
);
CREATE INDEX book_year_idx ON book (year)
EXPLAIN
SELECT *
FROM book b
WHERE b.year > 2009
मुझे देता है:
Seq Scan on book b (cost=0.00..25663.80 rows=105425 width=622)
Filter: (year > 2009)
यह क्यों प्रदर्शन नहीं करता सूचकांक बजाय स्कैन? मुझे क्या याद आ रही है?
5-10% कुछ विन्यास सेटिंग्स और डेटा के भंडारण पर भी निर्भर करता है। यह एक कठिन संख्या नहीं है। –
@ फ्रैंक: यही कारण है कि मैंने "लगभग" कहा है :) लेकिन –
को इंगित करने के लिए धन्यवाद दिलचस्प है, जो मेरे लिए कई चीजें बताता है :) दरअसल, जब मैं वर्ष> 2010 का चयन करता हूं तो यह इंडेक्स स्कैन करता है। धन्यवाद! – wajda