《Mysql學(xué)習(xí)mysql表的引擎轉(zhuǎn)換三種方法》要點(diǎn):
本文介紹了Mysql學(xué)習(xí)mysql表的引擎轉(zhuǎn)換三種方法,希望對您有用。如果有疑問,可以聯(lián)系我們。
- ALTER?TABLE?mytable?ENGINE=InnoDB;?
MYSQL入門上述語法可以適應(yīng)任何存儲引擎.但是又一個問題:需要執(zhí)行很長時間.mysql會按行將數(shù)據(jù)從元彪復(fù)制到一張新表總,在復(fù)制期間可能會消耗系統(tǒng)所有I/O能力,同時原表上會加上讀鎖.所以,在繁忙的表上執(zhí)行此操作要特別小心.一個替代方案是采用下面介紹的導(dǎo)出與導(dǎo)入的方法,手工進(jìn)行表的復(fù)制.
2.導(dǎo)出導(dǎo)入
為了更好地控制轉(zhuǎn)換的過程,可以使用mysqldump工具將數(shù)據(jù)導(dǎo)出到文件,然后修改文件中CREATE TABLE 語句的存儲引擎,主要同時修改表名,因?yàn)橥粋€數(shù)據(jù)庫中不能存在相同的表名.
3.創(chuàng)建與查詢(CREATE和SELECT)
第三種轉(zhuǎn)換的技術(shù)綜合了第一種方法的高效和第二種方法的安全.不需要導(dǎo)出整個表的數(shù)據(jù),而是先創(chuàng)建一個新的存儲引擎表,然后利用INSERT.....SELECT語法來導(dǎo)數(shù)據(jù):
?
- CREATE??TABLE?innodb_table?LIKE?myisam_table;?
- ALTER?TABLE?innodb_table?ENGINE=InnoDB;?
- INSERT?INTO?innodb_table?SELECT?*?FROM?myisam_table;?
MYSQL入門數(shù)據(jù)量不大的話,這樣做工作很好.如果數(shù)據(jù)量很大,則考慮做分批處理,針對每一段數(shù)據(jù)執(zhí)行事務(wù)提交操作,避免大事務(wù)產(chǎn)生過多的undo.
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.snjht.com/jiaocheng/5741.html