2011-05-25 15 views
5

यह मतलब यह है एएससी ऐसेयदि मैं पोस्टग्रेर्स इंडेक्स बनाता हूं तो एएससी और डीईएससी के बीच क्या अंतर है?

के रूप में प्रश्नों के लिए बेहतर है

मूल्य> 40

और DESC ऐसे

मूल्य < 40 के रूप में प्रश्नों के लिए बेहतर है?

उत्तर

7

जहां हालत प्रभावित नहीं किया जा सकता है, लेकिन आदेश द्वारा निश्चित रूप से

PostgreSQL Index Ordering Documentation

+0

क्या अभी तक अप्रकाशित संस्करणों में से डॉक्स को जोड़ने के साथ है प्रभावित होता है? –

+2

यह महत्वपूर्ण बात है: * एक महत्वपूर्ण विशेष मामला LIMIT n के साथ संयोजन में आदेश दिया जाता है: एक स्पष्ट प्रकार को पहले एन पंक्तियों की पहचान करने के लिए सभी डेटा को संसाधित करना होगा, लेकिन यदि कोई सूचकांक ORDER BY से मेल खाता है, तो पहले एन पंक्तियों को शेष को स्कैन किए बिना सीधे पुनर्प्राप्त किया जा सकता है। * – Mel

+0

@ मिलेन ए राडेव इसे इंगित करने के लिए धन्यवाद, रिलीज़ संस्करण में इंगित करने के लिए तय किया गया है। मुझे लगता है कि Google ने ओपी प्रश्न का उत्तर दिया होगा। – Kallex

6

पोस्टग्रेएसक्यूएल (या उस मामले के लिए कोई अन्य डीबी इंजन) आपकी अनुक्रमणिका को किसी भी तरह से ठीक से पढ़ेगा। आपको एक इंडेक्स स्कैन या रिवर्स इंडेक्स स्कैन मिलेगा।

समस्या तब होती है जब आपके पास बहु-कॉलम स्कैन होता है। इस मामले में:

index on (foo, bar) 

foo desc, bar desc के साथ ही, foo asc, bar asc के लिए काम करेंगे। कुछ डेटाबेस पर यह foo desc, bar asc (रिवर्स स्कैन फू, अनदेखा बार) पर काम नहीं करेगा, या foo asc, bar desc (स्कैन फू, बार अनदेखा करता है) पर काम नहीं करेगा।

0

अवरोही आप को बढ़ावा दे सकते हैं यदि स्तंभ (रों) sequencial डेटा है कि द्वारा "हाल का" मान संदर्भित है होते हैं - तिथि कॉलम, आईडी कॉलम, आदि

सामान्य शब्दों में, टेबल/अनुक्रमित होता हालांकि, इसके लिए एक अंतर बनाने के लिए वास्तव में बड़ा होना चाहिए।

यह वापस आने वाले चीज़ों को प्रभावित नहीं करेगा, बस कैसे।

संबंधित मुद्दे