2010-11-22 100 views
19

我閱讀下面的文章昨日(http://blogs.sitepoint.com/2010/11/19/mysql-mistakes-php-developers/),並寫道:的MySQL - InnoDB的VS的MyISAM

MySQL有一個數量的數據庫引擎,但你最有可能遇到的MyISAM和InnoDB。

默認情況下使用MyISAM。但是,除非您創建了一個非常簡單的或實驗性的數據庫,否則幾乎肯定是錯誤的選擇! MyISAM不支持對數據完整性至關重要的外鍵約束或事務。此外,無論何時插入或更新記錄,整個表都會被鎖定:隨着使用量的增長,會對性能產生不利影響。

解決方案很簡單:使用InnoDB。

我一直使用MyISAM,因爲它是默認的。你怎麼看?

如果我要升級到InnoDB,在phpMyAdmin中,我可以編輯每個表並將其更改爲innoDB,還是有更復雜的過程來執行?

謝謝!

+1

怎麼辦我認爲?這是這個[這個問題]的副本(http://stackoverflow.com/questions/20148/myisam-versus-innodb)+ [this one](http://stackoverflow.com/questions/225150/are-there - 任何-陷阱 - 東西 - 你 - 需要對知識的時候改變 - 從 - 的MyISAM到店)。 :) – 2010-11-22 23:16:35

+1

myisam不再是默認引擎http://dev.mysql.com/doc/refman/5.5/en/innodb-storage-engine.html。我認爲你選擇一個架構/引擎的基本原理是什麼,這是默認的 - ummmm沒有評論。 – 2010-11-22 23:34:50

回答

30

是的,如果你願意的話,你可以換入和換掉像內衣一樣的引擎,而不會有太多麻煩。只需在phpmyadmin中更改它。

但我不會爲了改變它而改變它。你需要使用外鍵嗎?更改。你需要行級鎖而不是表鎖?更改。

值得注意的是,使用MyISAM也有很好的理由。看看FULLTEXT索引。你不能用InnoDB做到這一點。

UPDATE

在MySQL的5.6 FULLTEXT已經InnoDB表實現爲好。這是manual