2012-03-12 10 views
0

私は100万以上のレコードを持つMyIsamテーブルを持っています。私はこの表の各行を更新する必要があります。私はレコードのバッチを賢明に処理しており、私はそのためのmutiスレッドスクリプトの一種を書いています。スクリプトの各スレッドはレコードのバッチのみを処理します。MyIsamテーブルを同時に更新するには?

ここで問題は、2つのバッチが同時に実行され、1つの更新がもう一方の更新を完了するのを待っていることです。この遅延を避けることは可能ですか?具体的には、データベース内のレコードを同時に更新することは可能ですか?

私の場合、行は他の行に依存せず、上書きされません。

私はTL_WRITE_ALLOW_WRITEについて読んでいます。しかし、それを実装する方法を知らない?

誰にでもこれに最適なソリューションを提案できますか?

答えて

1

残念ながら、編集しようとするとテーブルがロックされるため、MyIsamテーブルではできません。しかし、InnoDBではこれを行うことができます。

+0

私は実際にテーブルをInnoDbに変換してジョブを実行しようとしました。それはmyIsamよりも時間がかかります。 – codlib

+0

InnoDBは同じケースでパフォーマンスが向上しています。テーブルが正しくインデックスされていますか?InnodBDとMyISAMのEXPLAINクエリを比較しましたか? – rkosegi

関連する問題