我有两个表:用户和友谊。 我在网站上的行动是:
还有一些动作,但总的来说我想知道:
问题:
我应该为表使用 InnoDB 还是 MyISAM ? (或InnoDB for one和MyISAM for other?)
答案 0 :(得分:5)
除非您特别想在特定表中包含FULLTEXT
索引,否则请始终使用InnoDB。只有InnoDB强制执行外键,并且您可以在数据库中构建的参照完整性越多,每个人的情况就会越好。
答案 1 :(得分:5)
使用InnoDB。你得到外键约束,事务(所以你可以插入两个表,它们都被提交或两者都没有,所以你不会留下不一致的信息)。
然而,还有另一大优势。 InnoDB支持MVCC(多版本并发)。这意味着,当事务在一行上运行时,其他事务/语句可以看到该行的旧值。使用MyISAM,操作会阻止。减少阻塞意味着您可以让更多用户同时在您的数据集上运行。