2011-08-21 12 views
7

मैं हेरोकू पर रेल 3 ऐप बना रहा हूं और यह डेटाबेस के रूप में पोस्टग्रेज़ का उपयोग कर रहा है। मेरे रेल प्रवासन में मैंने सभी आईडी कॉलम पर इंडेक्स जोड़े। क्या यह एक गलती थी? मुझे आश्चर्य है कि क्या पोस्टग्रेज़ आईडी कॉलम पर डिफ़ॉल्ट रूप से अनुक्रमित करता है।आईडी कॉलम पर डिफ़ॉल्ट इंडेक्स?

यदि यह एक गलती थी, मैं इसे कैसे ठीक करूं? यदि मैं आईडी कॉलम से इंडेक्स को हटाने के लिए बस रेल माइग्रेशन लिखता हूं तो क्या यह सब कुछ ठीक करेगा?

उत्तर

9

postgresql's documentation के अनुसार:

Adding a primary key will automatically create a unique btree index on the column 
or group of columns used in the primary key. 

Hovewer, यह वही कॉलम पर एक और सूचकांक बनाने से रोक नहीं करता है। यदि आप कुछ अलग इंडेक्सिंग नीति (उदा। जीएसटी इंडेक्स) का उपयोग करते हैं तो यह समझ में आ सकता है। लेकिन, यदि आप इसके बारे में निश्चित नहीं हैं, तो 99.9% आपने अभी समान सूचकांक बनाया है।

वास्तव में, इस आवेदन की कार्यक्षमता बिल्कुल प्रभावित नहीं करेगा। चिंतित होने वाली एकमात्र चीज यह है कि इंडेक्स को अपडेट ऑपरेशंस पर पुनर्निर्मित किया जाता है, इसलिए यह कुछ प्रदर्शन संबंधी मुद्दों को उत्पन्न कर सकता है। इसलिए, मैनुअल के अनुसार removing seldom-used indexes (अंतिम वाक्य) सुझाता है, तो आप उन इंडेक्स को डीबी से बेहतर ढंग से हटा देंगे।

मैं आतंक विरोधी माइग्रेशन के साथ काफी परिचित नहीं हूँ, लेकिन मुझे लगता है कि एक प्रवास है कि उन अनुक्रमित हटाने wriing पर्याप्त है।

+0

हटा देंगे? – Brand

+0

नहीं, इंडेक्स को छोड़ने की क्वेरी विशिष्ट इंडेक्स को ड्रॉप करने के लिए नाम देती है। तो, ड्रॉप इंडेक्स याडा का परिणाम यदा नामक इंडेक्स में होना चाहिए। –

0

\ d "tablename" जो अनुक्रमित अपनी मेज पर मौजूद हैं से संपर्क करें। उनमें से सभी ऑटो-निर्मित वाले लोगों सहित सूचीबद्ध हैं। यदि आपको डुप्लिकेट मिलते हैं, तो एक को हटाने के लिए काफी आसान है ("tablename" पर ड्रॉप इंडेक्स "इंडेक्सनाम")। अगर मैं आईडी पर सूचकांक दूर करने के लिए भी निकल जाएगा "दोनों" क्वेरी चलाने आप केवल अनुसार नाम के साथ सूचकांक ...

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