在关闭之前阅读问题,因为有很多问题,但至少我找不到我想要的东西。
现在很清楚:
MyIsam is faster at searching strings (much faster)
InnoDB is faster at joins (much faster)
所以我的问题是:我有以下设置:
两个表,假设t1包含id
列,bla1
,bla2
,...,blan
;和t2列t1Id
,extra1
,extra2
,...,extran
。
表1(t1)是InnoDB(需要对其进行交易以便明确)。表2(t2)总是与t1一起使用(对于某些特定情况是额外数据),因此在t2出现的地方之间始终存在连接。这将指向InnoDB。问题是,在连接之后,搜索也将(总是)完成其中一列内的字符串。这将指向MyISAM。
获得某些东西的时间显然是加入时间和搜索时间之间的总和。问题是,如果我优化一个,我会让另一个变慢。
奖金事实:表格真的很大,t2从不需要交易,行锁定或任何通常强加InnoDB的东西。
什么是更好的选择? MyISAM或InnoDB?
答案 0 :(得分:4)
唯一可以肯定的方法是创建两个表,使用示例数据加载它们并测量查询。
一般情况下,我建议您使用InnoDB:
答案 1 :(得分:1)