Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

क्या किसी तालिका में स्तंभ क्रम के बारे में चिंता करने का कोई कारण है?

Sql Server, Oracle, और MySQL में फैले कुछ डेटाबेस पर कॉलम ऑर्डर का बड़ा प्रदर्शन प्रभाव पड़ा। इस पोस्ट में अच्छे नियम हैं। :

  • प्राथमिक कुंजी कॉलम पहले
  • विदेशी कुंजी कॉलम आगे।
  • अगले कॉलम अक्सर खोजे जाते हैं
  • अक्सर बाद में अपडेट किए गए कॉलम
  • अशक्त स्तंभ अंतिम।
  • अक्सर उपयोग किए जाने वाले अशक्त स्तंभों के बाद कम से कम उपयोग किए जाने वाले अशक्त स्तंभ

प्रदर्शन में अंतर के लिए एक उदाहरण इंडेक्स लुकअप है। डेटाबेस इंजन इंडेक्स में कुछ शर्तों के आधार पर एक पंक्ति ढूंढता है, और एक पंक्ति पता वापस प्राप्त करता है। अब कहें कि आप SomeValue की तलाश में हैं, और यह इस तालिका में है:

 SomeId int,
 SomeString varchar(100),
 SomeValue int

इंजन को अनुमान लगाना होता है कि कुछ वैल्यू कहां से शुरू होती है, क्योंकि कुछ स्ट्रिंग की अज्ञात लंबाई होती है। हालांकि, अगर आप ऑर्डर को इसमें बदलते हैं:

 SomeId int,
 SomeValue int,
 SomeString varchar(100)

अब इंजन को पता है कि पंक्ति की शुरुआत के बाद कुछ वैल्यू को 4 बाइट्स मिल सकते हैं। इसलिए स्तंभ क्रम का प्रदर्शन पर काफी प्रभाव पड़ सकता है।

संपादित करें:एसक्यूएल सर्वर 2005 पंक्ति की शुरुआत में निश्चित-लंबाई वाले फ़ील्ड संग्रहीत करता है। और प्रत्येक पंक्ति में एक वर्चर की शुरुआत का संदर्भ होता है। यह उस प्रभाव को पूरी तरह से नकार देता है जिसे मैंने ऊपर सूचीबद्ध किया है। इसलिए हाल के डेटाबेस के लिए, स्तंभ क्रम का अब कोई प्रभाव नहीं पड़ता है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. समय बीतने के बाद mysql पंक्ति को कैसे हटाएं?

  2. MySQLDB SScursor का कुशलतापूर्वक उपयोग कैसे करें?

  3. MySQL - एक ही संरचना के साथ कई तालिकाओं से डेटा का चयन करना, लेकिन अलग-अलग डेटा

  4. T-SQL के WITH TIES के लिए MySQL का विकल्प

  5. MySQL में आज से रिकॉर्ड कैसे प्राप्त करें