Read question before closing as duplicate pls., because there are many questions about this, but at least I didn't find what I was looking for.
What is clear by now:
MyIsam is faster at searching strings (much faster)
InnoDB is faster at joins (much faster)
So my problem is this: I have the following setup:
Two tables, lets say t1 having columns id
, bla1
, bla2
, ..., blan
; and t2 having columns t1Id
, extra1
, extra2
, ..., extran
.
Table 1 (t1) is InnoDB (needs transactions on it so that's clear). Table 2 (t2) is always used with t1 (is extra data for some specific cases), so there will always be a join between those to where ever t2 appears. That would point to InnoDB. The thing is that after the join a search will be also done (always) for a string inside one of the columns. This would point to MyISAM.
Time to get something is obviously the sum between the join time and the search time. The problem is that if I optimize one I make the other slower.
Bonus facts: Tables are really really big, t2 never needs transactions, row lock or whatever usually impose InnoDB.
What is the better choice? MyISAM or InnoDB?