过去几天,我一直处于困惑状态,决定是否使用MyIsam或Innodb,两者各有利弊。我的表将有大量的数据,包括繁重的INSERT,UPDATE和SELECT操作。
我决定创建两个结构相同的表; tbl_mytbl_innodb(innodb engine)
和tbl_mytbl_myisam(myisam engine)
然后我在tbl_mytbl_innodb
上为INSERT和UPDATE事件创建了两个触发器,用于插入/更新tbl_mytbl_myisam
。因此,它始终会写入tbl_mytbl_innodb
并从tbl_mytbl_myisam
读取。
这个过程是否正确,还是我需要以更好的方式做到这一点?
答案 0 :(得分:4)
这是一个愚蠢的方式。您应该同时使用两者的唯一情况是,您需要交易+外键 AND 全文索引。您将使用触发器同步MyISAM表中的fulltextable字段,否则将所有内容保存在InnoDB中。
MyISAM优于InnoDB的用例很少,主要的是InnoDB缺乏全文支持。
答案 1 :(得分:2)
我认为这与正确的过程相反。我个人的建议是将InnoDB用于几乎所有的商业活动,因为它支持交易......我发现MyISAM的唯一用途是全文搜索(不知道为什么InnoDB没有),但我承认这是个人偏好。
使用触发器跨多个表同步相同的数据可能不太好。定义业务需求并选择引擎。如果您需要将其他引擎用于特定需求,请定义该引擎并根据需要填充数据子集。