1

たとえば、私がこのアルゴリズムを持っている場合:

  1. データベースに接続する
  2. データベースからいくつかのデータを選択してみてください
  3. データが存在しない場合
    1. どこかからデータを取得する
    2. データベースにデータを挿入します
  4. データベース接続を閉じる
  5. データで何かをする
  6. そして、私たちは完了です

次に、phpスクリプトが起動し、データベースにデータがない場合、おそらくデータの生成中に(ステップ3.1)、別のユーザーがスクリプトを再度起動します。次に、私はこのような何かがより良いと思います:

  1. データベースに接続する
  2. データベースからいくつかのデータを選択してみてください(エントリがロックされている場合、スクリプトはロックが解除されるまで待機します)
  3. データが存在しない場合
    1. データベースエントリをロックする
    2. どこかからデータを取得する
    3. データベースにデータを挿入します
    4. データベースエントリのロックを解除する
  4. データベース接続を閉じる
  5. データで何かをする
  6. そして、私たちは完了です

どうすればそのロックを行うことができますか?(私はSQLを初めて使用しますが、もっと適切な名前があるかもしれません)

4

1 に答える 1

1

同じトランザクションで読み取りと可能な書き込みを行うと、データベースは2人のユーザーが互いに干渉しないことを保証します。

ACIDプロパティを確認してください。)

于 2013-03-17T20:29:03.900 に答える