我處於項目的開始階段,迄今爲止我一直在使用默認的MySQL數據庫。MySQL默認數據庫以及如何使現有的非InnoDB成爲InnoDB
順便說一句,默認數據庫是否有名字?
我的問題是,我可以如何將現有的表格更改爲utf-8和InnoDB,而不刪除當前表格並創建新表格。是否有一個更改表來創建表utf-8和InnoDB?
謝謝, 亞歷克斯
我處於項目的開始階段,迄今爲止我一直在使用默認的MySQL數據庫。MySQL默認數據庫以及如何使現有的非InnoDB成爲InnoDB
順便說一句,默認數據庫是否有名字?
我的問題是,我可以如何將現有的表格更改爲utf-8和InnoDB,而不刪除當前表格並創建新表格。是否有一個更改表來創建表utf-8和InnoDB?
謝謝, 亞歷克斯
MyISAM
是默認存儲引擎爲MySQL(直到5.5.5,此時InnoDB
成爲默認值)。沒有缺省的數據庫的概念。
爲了使現有的表使用InnoDB
,使用以下命令:
ALTER TABLE tbl_name ENGINE = InnoDB;
要更改字符集現有的表來utf8
,使用以下命令:
ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8;
如果你想把它換成InnoDB安全起見,我有一個很好的建議:
創建一個新表作爲InnoDB並加載它
對於本例,您在mydb數據庫中有一個名爲mytable的MyISAM表。您可以執行以下操作:
use mydb
CREATE TABLE mytable_innodb LIKE mytable;
ALTER TABLE mytable_innodb ENGINE=InnoDB;
INSERT INTO mytable_innodb SELECT * FROM mytable;
ALTER TABLE mytable RENAME mytable_myisam;
ALTER TABLE mytable_innodb RENAME mytable;
就是這樣。新表是InnoDB,並且您有MyISAM中原始表的備份以及其原始內容和佈局。您可以自由地在新的InnoDB表上執行任何其他需要的轉換。
CAVEAT
確保您優化的InnoDB
Howto: Clean a mysql InnoDB storage engine?
這是非常HEL pful - 謝謝! – GeekedOut 2011-05-26 17:57:31