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

MySQL 5.6 - ALGORITHM=inplace का उपयोग करने पर भी टेबल लॉक हो जाता है

मुझे लगता है कि आप लगभग उसी समय उस टेबल पर कोई अन्य डीडीएल नहीं कर रहे थे?

भविष्य के लिए:

8.0.12 में ALTER TABLE .. ALGORITHM=INSTANT है ADD COLUMN . के लिए . देखें चर्चा और वैकल्पिक संदर्भ और ऑनलाइन DDL संदर्भ

निम्नलिखित सीमाएं तब लागू होती हैं जब एक कॉलम जोड़ने के लिए तत्काल एल्गोरिथम का उपयोग किया जाता है:

  • एक कॉलम जोड़ने को उसी स्टेटमेंट में अन्य ALGORITHM=INSTANT सपोर्ट नहीं करने वाली अन्य ALTER TABLE कार्रवाइयों के साथ जोड़ा नहीं जा सकता।
  • एक कॉलम को टेबल के आखिरी कॉलम के तौर पर ही जोड़ा जा सकता है। अन्य स्तंभों के बीच किसी अन्य स्थिति में स्तंभ जोड़ना समर्थित नहीं है।
  • ROW_FORMAT=COMPRESSED का उपयोग करने वाली तालिका में कॉलम नहीं जोड़े जा सकते।
  • एक FULLTEXT अनुक्रमणिका वाली तालिका में कॉलम नहीं जोड़े जा सकते।
  • अस्थायी तालिकाओं में कॉलम नहीं जोड़े जा सकते। अस्थायी तालिकाएँ केवल ALGORITHM=COPY का समर्थन करती हैं।
  • डेटा डिक्शनरी टेबलस्पेस में रहने वाली टेबल में कॉलम नहीं जोड़े जा सकते।
  • कॉलम जोड़ते समय पंक्ति आकार सीमा का मूल्यांकन नहीं किया जाता है। हालाँकि, पंक्ति आकार सीमा की जाँच DML संचालन के दौरान की जाती है जो तालिका में पंक्तियों को सम्मिलित और अद्यतन करते हैं।

एक ही ALTER TABLE स्टेटमेंट में कई कॉलम जोड़े जा सकते हैं।

यदि आप अपग्रेड नहीं कर सकते हैं तो Percona के pt-online-schema-change पर विचार करें या एक नया, प्रतिस्पर्धी, उत्पाद gh-ost (जो बिनलॉग का उपयोग करता है)।



  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 तालिका को SQLite3 पर कॉपी करें

  2. mySQL में एक विदेशी कुंजी नहीं छोड़ सकता

  3. पीएचपी पीडीओ foreach और लाने के साथ

  4. Neo4j . के बारे में

  5. पीडीओ क्या है, यह एसक्यूएल इंजेक्शन से कैसे संबंधित है, और मुझे इसका उपयोग क्यों करना चाहिए?