ゲームの場合、スコアテーブルを実装しようとしています。ゲームロジックによると、スコアは通常、1人のユーザーが数分ごとに発生する1ラウンドを完了すると変化します。ただし、2人のユーザーが同時に終了するという保証はありません。
ユーザーがスコアをチェックするたびにスコアが再計算されないようにするために、ラウンドが完了するたびに更新される永続的なテーブルにスコアデータを保持する予定です。
これを実装する予定です
TRUNCATE TABLE scores; INSERT INTO SCORES SELECT ....
しかし、私の懸念は、2人のユーザーが同時に終了したときに何が起こるかです。クエリ全体を1つの接続で渡します(それが重要な場合はASP.NETから)が、2つのクエリを一緒にアトミックと見なしますか?または、手動のトランザクションロジックを実装する必要があることを提案しますか?
トランザクションを提案する場合は、クエリを「BEGIN TRAN ... END TRAN」で囲むだけで十分であり、その「スコア」テーブルにMyISAMまたはInnoDBを提案しますか?
私のMySQLバージョンは5.0.92です-それが重要な場合はログに記録してください。