इंडेक्स जोड़ने की लागत / लाभ कैसे निर्धारित करें?


10

क्रेग रिंगर के अनुसार :

हालांकि यह आमतौर पर आपके संदर्भ-पक्ष विदेशी कुंजी स्तंभों पर (या शामिल) एक सूचकांक बनाने के लिए एक अच्छा विचार है, इसकी आवश्यकता नहीं है। प्रत्येक अनुक्रमणिका को आप धीमे DML परिचालनों को थोड़ा नीचे जोड़ते हैं, इसलिए आप प्रत्येक पर एक प्रदर्शन लागत का भुगतान करते हैं INSERT, UPDATEया DELETE। यदि अनुक्रमणिका का उपयोग शायद ही कभी किया जाता है तो यह होने योग्य नहीं हो सकता है।

यदि आप सूचकांक जोड़ने का लाभ अपनी लागत से अधिक है तो आप कैसे निर्धारित करेंगे?

क्या आप एक इंडेक्स जोड़ने से पहले / बाद में इकाई परीक्षणों की जाँच करते हैं और समग्र प्रदर्शन लाभ के लिए जाँच करते हैं? या कोई बेहतर तरीका है?


pg_stat_user_indexesइंडेक्स के उपयोग के बारे में जानकारी दिखाते हुए, इससे आपको मार्गदर्शन करने में मदद करता है। रखरखाव की लागत का अनुमान लगाने के लिए आप अपनी तालिका लेखन गतिविधि को देख सकते हैं, pg_stat_user_tablesलेकिन HOT के कारण, सभी अपडेटों को आवश्यक रूप से सूचकांक को स्पर्श नहीं करना पड़ेगा, ताकि आप थोड़े से अधिक को समझ सकें।
क्रेग रिंगर

@ क्रेगिंगर, यह बहुत मददगार है। धन्यवाद!
गिल्ली

मैं pgBadger पर लगभग विशेष रूप से भरोसा करता हूं। और मेरी आंत।
कॉलिन टी हार्ट

जवाबों:


4

सूचकांक उपयोग आप डेटा की संरचना और आप डेटा की चयनात्मकता पर निर्भर करता है। यदि आप प्रश्न बनाते हैं कि आप उनका उपयोग नहीं करते हैं तो वे महंगे हैं। यदि आप उन्हें प्रभावी ढंग से उपयोग करते हैं तो वे महान उपकरण हैं। EXPLAINकेवल नियोजन या नियोजन और आज्ञाओं के निष्पादन ( ) के लिए एक क्वेरी प्लानर और क्वेरी प्लानर एनालिटिक्स ( ) है EXPLAIN ANALYZE

और एक महान ऑनलाइन पुस्तक है: अनुक्रमणिका के अनुशंसित उपयोग के बारे में सूचकांक ल्यूक का उपयोग करें


4
अंगूठे का नियम अच्छा है, लेकिन इस मामले में बहुत सामान्य है। मैं एक ठोस उपकरण / माप की तलाश कर रहा हूं जो मेरे आवेदन के वास्तविक रनटाइम व्यवहार के आधार पर अनुक्रमणिका को जोड़ने / हटाने का सुझाव देगा।
गिल्ली

शायद यह वह उपकरण है जिसे आप ढूंढ रहे हैं: enterprisedb.com/products-services-training/products/…
Mladen Uzelac

1

अंगूठे के नियम चुनें और उनका पालन करें। उदाहरण के लिए, मैं हमेशा एक विदेशी कुंजी के संदर्भ पक्ष पर एक सूचकांक बनाता हूं।

सुनिश्चित करें कि आप उपयोगकर्ता की आवश्यकताओं के आधार पर प्रदर्शन मानदंड के खिलाफ अपने उत्पाद का प्रदर्शन परीक्षण करते हैं। उदाहरण के लिए, सिस्टम को X के प्रति मिनट 100 POST अनुरोध प्रकार के आने वाले लोड को संभालने की आवश्यकता है।

यदि आप अपनी प्रदर्शन आवश्यकताओं को पूरा नहीं कर सकते हैं, तो अपने मॉडल को परिष्कृत करें, संभवतः उस प्रक्रिया में अंगूठे के अपने नियमों को तोड़ते हुए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.