2011-09-21 147 views
1

過去幾天裏,我很困惑地決定是否使用MyIsam或Innodb,兩者都有自己的優點和缺點。我的表將有大量的數據與沉重的INSERT,UPDATE和SELECT操作。使用MyIsam和Innodb

我決定創建兩個相同結構的表; tbl_mytbl_innodb(innodb engine)tbl_mytbl_myisam(myisam engine)然後,我爲tbl_mytbl_innodb創建了兩個觸發器,用於插入/更新tbl_mytbl_myisam的INSERT和UPDATE事件。所以它總是會寫入tbl_mytbl_innodb並從tbl_mytbl_myisam讀取。

這個過程是否正確,還是我需要更好地做到這一點?

回答

2

我會說這是一個正確的過程相反。我個人的建議是將InnoDB用於幾乎所有的商業活動,因爲它支持交易...... MyISAM找到的唯一用途是全文搜索(不知道爲什麼InnoDB不提供這種功能),但我坦率地承認這是個人偏好。

使用觸發器在多個表中同步相同的數據可能不太好。定義您的業務需求並選擇一個引擎。如果您需要爲特定需求使用其他引擎,請定義該引擎並根據需要填充數據的子集。

+2

全文搜索來到你附近的InnoDB! http://blogs.innodb.com/wp/2011/07/innodb-full-text-search-tutorial/ –

+0

@Michael:哇!它剛剛在樓下有點冷,並且FAA是否開始准許豬的駕駛執照? –

+0

所以我想我會堅持到innodb。但我讀過myisam的搜索速度很快。這是多少真的? – iThink

4

這是一個愚蠢的路要走。如果您需要交易+外鍵全文索引,唯一一次應該同時使用兩者。你可以使用觸發器來同步MyISAM表中的fulltextable字段,否則將所有內容保存在InnoDB中。

很少有用例說明MyISAM優於InnoDB,最主要的是InnoDB缺乏全文支持。

+0

哈哈我的答案几乎是完全一樣的東西。 –