私はテーブル構造をレイアウトしており、ストレージエンジンをセットアップする方法についての十分な知識がありました。この設定では、innodbとmyisamの組み合わせが最適ですか?
テーブルの最初のフィールドは、整数タイプで、AUTO INCREMENT
です。フィールド2〜5は、約95%の読み取り、5%の書き込み(書き込みはINSERT
のみです)ですが、フィールド6は常に更新され、約50%の読み取り(SELECT
ステートメント)と50%の書き込み(10%INSERT
90%UPDATE
) )
私はちょうどあなたのテーブルhttp://dev.mysql.com/doc/refman/5.0/en/internal-locking.htmlからの削除のエントリが存在しない場合は、あなたが自由にロックずにMyISAMテーブルのための同時INSERTとSELECT文を混在させることができことをお読みください。これまでテーブルから行を削除するつもりはありません。
テーブルを2つの異なるテーブルに分割することをおすすめしますか?最初のテーブルはMYISAMで、上記のフィールド1〜5(95%読書、5%書込み)です。 2番目のテーブルはinnodbで2つのフィールドを持ちます。最初のテーブルは最初のテーブルの最初のフィールドと同じAUTO INCREMENT
で、2番目のフィールドは常に更新されています(50%は50%書き込み)。
異なるテーブルへの2つの挿入ステートメントは、順番に発生するはずです。まれに、最初のINSERT文が実行されますが、2番目のINSERT文は実行されません。各表の最初のフィールドが互いに正しくマップされるようにするにはどうすればよいですか?
対のInnoDBを明確に、TABLE1(MyISAMテーブル)と表2と判断いくつかの他の記事です(innodb)は共に「常に更新されている」コラムを共有しますか? –
Hey Mike、彼らが共有する唯一の列は、自動増分列です。したがって、表1と表2の20行目は、お互いに関係している必要があります。 – user784637
ですから、table1.ever_changing_col!= table2.ever_changing_colです。私が尋ねる理由は、列が同じではないにもかかわらず、それらがlinking_idを共有していれば、tabl2.ever_changing_colがtable1を補うかどうかです。 –