संक्षिप्त उत्तर:
सूचकांक तेज़ होते हैं SELECT
और धीमा करें INSERT
'एस।
आमतौर पर अनुक्रमणिका रखना बेहतर होता है, क्योंकि वे SELECT
. को तेज़ करते हैं जितना वे धीमा करते हैं उससे कहीं अधिक insert
।
किसी UPDATE
पर सूचकांक चीजों को गति उतरता कर सकता है यदि अनुक्रमित फ़ील्ड का उपयोग WHERE
. में किया जाता है अगर आप update
. करते हैं तो क्लॉज और चीजों को धीमा कर दें अनुक्रमित क्षेत्रों में से एक।
आप कैसे जानते हैं कि किसी अनुक्रमणिका का उपयोग कब करना है
EXPLAIN
जोड़ें अपने SELECT
. के सामने कथन।
ऐसा ही:
EXPLAIN SELECT * FROM table1
WHERE unindexfield1 > unindexedfield2
ORDER BY unindexedfield3
आपको दिखाएगा कि प्रत्येक अनइंडेक्स किए गए फ़ील्ड पर MySQL को कितना काम करना होगा।
उपयोग करना वह जानकारी आप तय कर सकते हैं कि इंडेक्स जोड़ना उचित है या नहीं।
समझाएं आपको यह भी बता सकती हैं कि ड्रॉप और इंडेक्स करना बेहतर है या नहीं
EXPLAIN SELECT * FROM table1
WHERE indexedfield1 > indexedfield2
ORDER BY indexedfield3
यदि बहुत कम पंक्तियों का चयन किया जाता है, या MySQL ने अनदेखा करने का निर्णय लिया है सूचकांक (यह समय-समय पर ऐसा करता है) तो आप अनुक्रमणिका को भी छोड़ सकते हैं, क्योंकि यह है आपके insert
को धीमा कर रहा है s लेकिन अपने select
को गति नहीं दे रहे हैं है।
फिर यह भी हो सकता है कि आपका चयन कथन पर्याप्त चतुर नहीं है।
(उत्तर में जटिलता के लिए क्षमा करें, मैं इसे सरल रखने की कोशिश कर रहा था, लेकिन असफल रहा)।
लिंक:
MySQL अनुक्रमणिका - क्या हैं सर्वोत्तम अभ्यास?