これについては多くの質問がありますが、少なくとも私が探していたものは見つかりませんでした。
今のところ明らかなこと:
MyIsam is faster at searching strings (much faster)
InnoDB is faster at joins (much faster)
だから私の問題はこれです:私は次の設定をしています:
id
2 つのテーブル、列, bla1
, bla2
, ...,を持つ t1 としましょうblan
。列t1Id
、extra1
、extra2
、...、を持つ t2 extran
。
表 1 (t1) は InnoDB です (トランザクションが必要なので、明確です)。テーブル 2 (t2) は常に t1 と共に使用されます (いくつかの特定のケースの追加データです)。それは InnoDB を指します。問題は、結合後に、列の 1 つの内部の文字列に対しても (常に) 検索が行われることです。これは MyISAM を指します。
何かを取得する時間は、明らかに参加時間と検索時間の合計です。問題は、一方を最適化すると、もう一方が遅くなることです。
おまけの事実: テーブルは非常に大きく、t2 はトランザクション、行ロック、または通常 InnoDB を課すものを必要としません。
より良い選択は何ですか?MyISAM または InnoDB?