2011-05-23 31 views
3

我處於項目的開始階段,迄今爲止我一直在使用默認的MySQL數據庫。MySQL默認數據庫以及如何使現有的非InnoDB成爲InnoDB

順便說一句,默認數據庫是否有名字?

我的問題是,我可以如何將現有的表格更改爲utf-8和InnoDB,而不刪除當前表格並創建新表格。是否有一個更改表來創建表utf-8和InnoDB?

謝謝, 亞歷克斯

回答

5

MyISAM是默認存儲引擎爲MySQL(直到5.5.5,此時InnoDB成爲默認值)。沒有缺省的數據庫的概念。

爲了使現有的表使用InnoDB,使用以下命令:

ALTER TABLE tbl_name ENGINE = InnoDB; 

要更改字符集現有的表來utf8,使用以下命令:

ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8; 
+0

這是非常HEL pful - 謝謝! – GeekedOut 2011-05-26 17:57:31

2

如果你想把它換成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

InnoDB performance tweaks

Howto: Clean a mysql InnoDB storage engine?

How to Safely Change InnoDB Log File Size

Major Differences Between InnoDB and MyISAM