繁体   English   中英

同时使用MyIsam和Innodb

[英]Using both MyIsam & Innodb

在过去的几天里,我在决定使用MyIsam还是Innodb时都感到非常困惑,因为两者都有各自的优缺点。 我的表将包含大量数据,并且需要进行大量的INSERT,UPDATE和SELECT操作。

我决定创建两个结构相同的表。 tbl_mytbl_innodb(innodb engine)tbl_mytbl_myisam(myisam engine) ,然后我在tbl_mytbl_innodb为INSERT和UPDATE事件创建了两个触发器, tbl_mytbl_innodb触发器将插入/更新tbl_mytbl_myisam 因此,它将始终写入tbl_mytbl_innodb并从tbl_mytbl_myisam读取。

这个过程是否正确,还是我需要做一个更好的方法?

那是一个愚蠢的路。 如果需要事务处理+外键全文索引,则应同时使用两者。 您将使用触发器来同步MyISAM表中的全文字段,否则将所有内容保留在InnoDB中。

在少数情况下,MyISAM比InnoDB更可取,主要的情况是InnoDB中缺乏全文本支持。

我会说这与正确的过程相反。 我个人的建议是将InnoDB用于几乎所有业务活动,因为它支持事务...我发现MyISAM的唯一用途是全文搜索(不知道为什么它在InnoDB中不可用),但我自由地承认这是个人喜好。

使用触发器在多个表之间同步相同数据不是很好。 定义您的业务需求并选择引擎。 如果您需要将另一个引擎用于特定要求,请对其进行定义并根据需要填充数据的子集。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM