वे स्तंभ जिनका उपयोग फ़िल्टरिंग . के लिए किया जाता है या शामिल होना (या, कुछ हद तक, क्रमबद्ध करना ) अनुक्रमण के लिए रुचिकर हैं। अभी-अभी चुने गए कॉलम बमुश्किल प्रासंगिक हैं!निम्नलिखित क्वेरी के लिए केवल a . पर अनुक्रमित होते हैं और ई उपयोगी हो सकता है:
SELECT a,b,c,d
FROM tbl_a
WHERE a = $some_value
AND e < $other_value;
यहाँ, f और संभवतः c उम्मीदवार भी हैं:
SELECT a,b,c,d
FROM tbl_a
JOIN tbl_b USING (f)
WHERE a = $some_value
AND e < $other_value
ORDER BY c;
अनुक्रमणिका बनाने के बाद, यह देखने के लिए परीक्षण करें कि क्या वे वास्तव में उपयोगी हैं EXPLAIN ANALYZE
. अनुक्रमणिका के साथ और उसके बिना निष्पादन समय की भी तुलना करें। इंडेक्स को हटाना और फिर से बनाना तेज और आसान है। प्रयोग
के पैरामीटर भी हैं EXPLAIN ANALYZE
. के साथ . अंतर चौंका देने वाला या न के बराबर हो सकता है।
चूंकि आपकी टेबल केवल पढ़ी जाती हैं, इंडेक्स रखरखाव सस्ता है। यह केवल डिस्क स्थान का प्रश्न है।
यदि आप वास्तव में जानना चाहते हैं कि आप क्या कर रहे हैं, तो दस्तावेज़ों को पढ़कर प्रारंभ करें ।
यदि आप नहीं जानते कि किन प्रश्नों की अपेक्षा की जाए ...
-
सामान्य उपयोग के मामलों को खोजने के लिए पर्याप्त क्वेरी लॉग करने का प्रयास करें। पैरामीटर के साथ लॉग क्वेरी करें
log_statement = all
उस के लिए। या बसlog_min_duration_statement
का उपयोग करके धीमी क्वेरी लॉग करें । -
इंडेक्स बनाएं यह उपयोगी हो सकता है और कुछ समय बाद आँकड़ों की जाँच करके देखें कि वास्तव में क्या उपयोग किया जाता है। PostgreSQL के पास आंकड़ों की निगरानी के लिए एक संपूर्ण बुनियादी ढांचा है। . आँकड़ों (और कई अन्य कार्यों) का अध्ययन करने का एक सुविधाजनक तरीका है pgAdmin जहां आप अपनी टेबल/फ़ंक्शन/इंडेक्स चुन सकते हैं और ऑब्जेक्ट ब्राउज़र (मुख्य विंडो) में "सांख्यिकी" टैब पर सभी डेटा प्राप्त कर सकते हैं।
-
यह देखने के लिए ऊपर वर्णित अनुसार आगे बढ़ें कि क्या उपयोग में आने वाले इंडेक्स वास्तव में चीजों को गति देते हैं।
-
यदि क्वेरी प्लानर को आपकी एक या अधिक अनुक्रमणिका का उपयोग करना चाहिए, लेकिन नहीं या प्रतिकूल प्रभाव के लिए, तो संभवतः आपके सेटअप में कुछ गड़बड़ है और आपको प्रदर्शन अनुकूलन की मूल बातें:निर्वात, विश्लेषण, लागत पैरामीटर, स्मृति उपयोग, ...