タグ

ファントムに関するommr29のブックマーク (2)

  • MySQL :: MySQL 8.0 リファレンスマニュアル :: 15.7.4 ファントム行

    同じクエリーでさまざまな時間にさまざまな行のセットが生成されると、いわゆるファントムの問題がトランザクション内で発生します。 たとえば、SELECT が 2 回実行されたが、1 回目には返されなかった行が 2 回目には返された場合、その行が「ファントム」行です。 child テーブルの id カラム上にインデックスがあり、識別子の値が 100 よりも大きいすべての行をテーブルから読み取り、選択された行の一部のカラムをあとで更新するという意図でロックすると仮定します。 SELECT * FROM child WHERE id > 100 FOR UPDATE; クエリーでは、id が 100 よりも大きい最初のレコードからインデックスがスキャンされます。 このテーブルには id の値が 90 と 102 の行が格納されているものとします。 スキャン範囲内のインデックスレコード上に設定されたロ

  • MySQL :: MySQL 5.1 リファレンスマニュアル (オンラインヘルプ) :: 9.8.5 ネクストキーロックによるファントム問題の回避

    いわゆる「ファントム」の問題がトランザクション内で発生するのは、同じクエリーから生成される一連の行が、実行のたびに異なるような場合です。たとえば、SELECT が 2 回実行されたが、1 回目には返されなかった行が 2 回目には返された場合、その行が 「ファントム」 行です。 child テーブルの id カラム上にインデックスが設定された状態で、次のように識別子の値が 100 より大きいすべての行をテーブルから読み取り、その選択された行の特定のカラムをあとで更新できるようにそれらの行をロックするものとします。 SELECT * FROM child WHERE id > 100 FOR UPDATE; クエリーは、id が 100 より大きい最初のレコードからインデックスを走査します。このテーブルには id の値が 90 と 102 の行が格納されているものとします。その走査範囲内のイン

  • 1