के बाद से MySQL 5.6 ऑनलाइन DDL शुरू की, ALTER TABLEआदेश वैकल्पिक रूप से या तो हो सकता है ALGORITHM=INPLACEया ALGORITHM=COPYनिर्दिष्ट। ऑनलाइन DDL नोटों का अवलोकन , जो डिफ़ॉल्ट रूप से, INPLACEजहां भी संभव हो , का उपयोग किया जाता है, और इसका अर्थ है (कभी भी इसे काफी बताते हुए) कि INPLACEएल्गोरिथ्म एक से सस्ता COPYहै।
तो मुझे कभी ALGORITHM=COPYकिसी ALTER TABLEकथन पर क्या कारण बताना होगा ?
OPTIMIZE TABLE(जो मुझे लगता है कि इसके उद्देश्य के एक बड़े हिस्से के रूप में अनुक्रमित डीफ़्रैगिंग है ) ALGORITHM=INPLACEMySQL 5.7.4 के रूप में उपयोग करता है । तो मुझे लगता है यह मामला है कि, हाँ, है COPY करता है defrag अनुक्रमित है, लेकिन ऐसा नहीं करता हैINPLACE (किसी भी तरह), का एक संभावित लाभ के रूप में यह समाप्त करते हुये COPY।
ALTER TABLE ... ALGORITHM=INPLACEलिए समर्थन नहीं करती हैं , जिनमें अस्थायी कॉलम (DATE, DATETIME या TIMESTAMP) शामिल हैं और जिनका उपयोग करके पुनर्निर्माण नहीं किया गया है ALTER TABLE ... ALGORITHM=COPY..." ऑनलाइन DDL की सीमाएँ