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

Innodb . के लिए यादृच्छिक प्राथमिक कुंजी

MySQL प्रत्येक इंसर्ट पर अनुक्रमणिका को "पुनर्निर्माण" नहीं करता है।

MySQL का डिफ़ॉल्ट पृष्ठ आकार 16K है। यह इन पृष्ठों को 1MB वृद्धि (विस्तार कहा जाता है) में आवंटित करता है।

जब एक टेबल पहली बार बनाई जाती है (इंडेक्स को फिर से बनाया जाता है), तो पेज 15/16 भरे हुए होते हैं, कुछ रैंडम इंसर्ट (कमरे का 1k) के लिए जगह छोड़ते हैं। यदि आपकी अनुक्रमणिका प्रविष्टियाँ प्रत्येक 500 बाइट्स (प्राथमिक कुंजी आकार + क्लस्टर अनुक्रमणिका के लिए पंक्ति डेटा) हैं, जो पृष्ठ को विभाजित करने से पहले 2 नई पंक्तियों को सम्मिलित करने के लिए जगह छोड़ती है।

MySQL पेज हेडर में उच्चतम और निम्नतम रिकॉर्ड का मान रखता है, इसलिए एक निश्चित सीमा के भीतर रिकॉर्ड एक ही पेज पर जाते हैं।

जब MySQL को एक पूर्ण पृष्ठ पर एक पंक्ति सम्मिलित करने की आवश्यकता होती है, तो पृष्ठ को विभाजित किया जाना चाहिए। MySQL एक नया पेज जोड़ेगा, और आधे पेज डेटा को नए पेज पर ले जाएगा।

एक पृष्ठ के भीतर, रिकॉर्ड वास्तव में भौतिक क्रम में नहीं हो सकते हैं। वे उस क्रम में होंगे जिस क्रम में उन्हें डाला गया था। वे लिंक्ड सूची के एक रूप के माध्यम से क्रम में जुड़े हुए हैं। इसलिए, पृष्ठ को विभाजित करने की आवश्यकता के बाहर, यहां तक ​​​​कि एक यादृच्छिक सम्मिलन भी डेटा को भौतिक रूप से इधर-उधर नहीं करता है।

कई यादृच्छिक प्रविष्टियों के बाद, आपके पृष्ठ 1/2 से पूर्ण तक पूर्ण हो जाएंगे। कई आधे पूर्ण पृष्ठों वाली अनुक्रमणिका पठन प्रदर्शन को नकारात्मक रूप से प्रभावित करेगी (आपको 15/16वें पूर्ण पृष्ठ के समान रिकॉर्ड पढ़ने के लिए दो आधे-पूर्ण पृष्ठ पढ़ने होंगे)।

अब, यदि आप अनुक्रमणिका क्रम में पंक्तियाँ सम्मिलित कर रहे हैं, तो MySQL केवल पृष्ठों के अंत में जोड़ता रहता है, उन्हें 15/16 पूर्ण भरता है, और पृष्ठों के एक समय में एक सीमा जोड़ता है। लगभग पूर्ण पृष्ठों के पढ़ने के प्रदर्शन लाभ का उल्लेख नहीं करने के लिए, बहुत कम प्रदर्शन दंड, क्योंकि पृष्ठों का कोई विभाजन नहीं है, इसलिए डेटा का कोई स्थानांतरण शामिल नहीं है।

रैंडम इंसर्ट भी पृष्ठों के विखंडन को बढ़ाते हैं, जो पढ़ने के प्रदर्शन को प्रभावित कर सकते हैं यदि आप अक्सर बड़ी संख्या में अनुक्रमिक रिकॉर्ड (दुर्लभ) पढ़ते हैं।

साथ ही, बफ़रिंग बदलें आपको प्रभावित कर सकता है।




  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 में IP एड्रेस स्टोर करने का सबसे कारगर तरीका

  2. MySQL में REGEX_REPLACE () फ़ंक्शन कैसे काम करता है

  3. सबसे हालिया रिकॉर्ड द्वारा लारवेल एलोक्वेंट समूह

  4. Mysql वाइल्डकार्ड के साथ खोज प्रदर्शन में सुधार (%%)

  5. क्या जंक्शन तालिकाओं में किसी अन्य पहचान तालिका से एक से अधिक प्राथमिक कुंजी होनी चाहिए?