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

MySQL पंक्ति प्रारूप:निश्चित और गतिशील के बीच अंतर?

अंतर वास्तव में केवल MyISAM के लिए मायने रखता है, अन्य स्टोरेज इंजन अंतर की परवाह नहीं करते हैं।संपादित करें: कई उपयोगकर्ताओं ने टिप्पणी की कि InnoDB परवाह करता है:link 1 by भाप से चलने वाला , कान द्वारा लिंक 2

निश्चित चौड़ाई वाली पंक्तियों के साथ MyISAM के कुछ फायदे हैं:

  1. कोई पंक्ति विखंडन नहीं:चर चौड़ाई वाली पंक्तियों के साथ डेटा फ़ाइल में एकल पंक्तियों को कई खंडों में विभाजित करना संभव है। यह डिस्क की तलाश को बढ़ा सकता है और संचालन को धीमा कर सकता है। इसे OPTIMIZE TABLE से डीफ़्रैग्मेन्ट करना संभव है, लेकिन यह हमेशा व्यावहारिक नहीं होता है।

  2. डेटा फ़ाइल सूचक आकार:MyISAM में, डेटा फ़ाइल सूचक की एक अवधारणा है जिसका उपयोग तब किया जाता है जब इसे डेटा फ़ाइल को संदर्भित करने की आवश्यकता होती है। उदाहरण के लिए, इसका उपयोग इंडेक्स में किया जाता है जब वे संदर्भित करते हैं कि पंक्ति वास्तव में कहां मौजूद है। निश्चित चौड़ाई के आकार के साथ, यह सूचक फ़ाइल में पंक्ति ऑफ़सेट पर आधारित होता है (अर्थात पंक्तियाँ 1, 2, 3 होती हैं, चाहे उनका आकार कुछ भी हो)। चर चौड़ाई के साथ, सूचक बाइट ऑफ़सेट पर आधारित होता है (अर्थात पंक्तियाँ 1, 57, 163 हो सकती हैं)। नतीजा यह है कि बड़ी तालिकाओं के साथ, सूचक को बड़ा होना चाहिए जो तब तालिका में संभावित रूप से बहुत अधिक ओवरहेड जोड़ता है।

  3. भ्रष्टाचार के मामले में ठीक करना आसान है। चूंकि प्रत्येक पंक्ति समान आकार की होती है, यदि आपकी MyISAM तालिका दूषित हो जाती है तो इसे सुधारना बहुत आसान है, इसलिए आप केवल वही डेटा खो देंगे जो वास्तव में दूषित है। परिवर्तनशील चौड़ाई के साथ, सिद्धांत रूप में यह संभव है कि चर चौड़ाई सूचक गड़बड़ हो जाए, जिसके परिणामस्वरूप डेटा को खराब तरीके से छिपाया जा सकता है।

अब निश्चित चौड़ाई का प्राथमिक दोष यह है कि यह अधिक जगह बर्बाद करता है। उदाहरण के लिए, आपको VARCHAR फ़ील्ड के बजाय CHAR फ़ील्ड का उपयोग करने की आवश्यकता है, ताकि आप अतिरिक्त स्थान ले सकें।

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

आप इसके बारे में और भी अधिक यहां पढ़ सकते हैं:

http://dev.mysql.com/doc/refman /5.0/hi/static-format.html

http://dev.mysql.com/doc/refman /5.0/hi/dynamic-format.html



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. विभिन्न डेटाबेस का उपयोग कर डेटाबेस और स्कीमा के बीच अंतर?

  2. डेटाबेस से एक सरणी बनाना

  3. mysql GROUP_CONCAT डुप्लीकेट

  4. अब () बनाम गेटडेट ()

  5. MySQL पूरे कॉलम से सभी व्हाइटस्पेस हटा दें