InnoDB还是MyISAM?

use*_*957 1 mysql myisam innodb

我有两个表:用户和友谊.我在网站上的行动是:

  • 寄存器
  • 登录
  • 从用户表中选择朋友/人
  • 将人们添加为朋友

还有一些动作,但总的来说我想知道:

问题:

我应该在桌子上使用InnoDBMyISAM吗?(或InnoDB为一个和MyISAM为另一个?)

Vot*_*ple 5

除非您特别想要FULLTEXT在特定表上包含索引,否则始终使用InnoDB .只有InnoDB强制执行外键,并且您可以构建到数据库中的参照完整性越多,每个人的情况就会越好.


Adr*_*ith 5

使用InnoDB.您获得外键约束,事务(因此您可以插入到两个表中,或者它们都被提交或两者都没有,因此您不会留下不一致的信息).

但是,还有另一大优势.InnoDB支持MVCC(多版本并发).这意味着,当事务在一行上运行时,其他事务/语句可以看到该行的旧值.使用MyISAM,操作会阻止.减少阻塞意味着您可以让更多用户同时在您的数据集上运行.