私の理解では、Apache は着信要求ごとに個別の PHP プロセスを作成します。つまり、次のようなコードがある場合:
- レコードが存在するかどうかを確認する
- レコードが存在しない場合は作成する
では、これは競合状態の影響を受けやすいのではないでしょうか? 2 つのリクエストが同時に受信され、両方が同時に (1) にヒットした場合、両方とも false に戻り、両方とも新しいレコードを挿入しようとします。
もしそうなら、人々はこれにどのように対処しますか?これら 2 つのリクエストの周りに MySQL トランザクションを作成することで問題は解決しますか、それとも完全なテーブル ロックを行う必要がありますか?