この記事では、主に MySQL データベーストランザクション分離レベル関連情報の詳細な説明を紹介します。必要な方は、
データベース トランザクション分離レベル
を参照してください。データベース トランザクションには、低から高まで 4 つの分離レベルがあります。
√
× | |||
---|---|---|---|
ダーティ リード: | ダーティ リードとは、トランザクションがデータにアクセスしており、データが変更されているが、この変更がまだデータベースに送信されていないことを意味します。このとき、別のトランザクションもこのデータにアクセスし、このデータを使用します。 | ||
は、トランザクション内で同じデータを複数回読み取ることを指します。このトランザクションが終了する前に、別のトランザクションも同じデータにアクセスします。その後、最初のトランザクションの 2 回のデータ読み取りの間で、2 番目のトランザクションの変更により、最初のトランザクションで 2 回読み取られたデータが異なる可能性があります。このように、トランザクション内で 2 回読み取られるデータは異なるため、Non-Repeatable Read と呼ばれます。 (つまり、同じデータ内容を読み取ることができません) | ファントム読み取り: | ||
例: | テーブル: | シミュレートされたデータ: | 最初のトランザクションA: |
再現手順: | トランザクションAのinsertステートメントである限り、 B トランザクション選択前と更新後。 | MySQL InnoDB ストレージ エンジンは、マルチバージョン同時実行制御プロトコル - | MVC
index (主キー インデックス) に一意性 constraint
がある場合、InnoDB はデフォルトのネクスト キー ロックをレコード ロックにダウングレードします。以上がMySQL データベースのトランザクション分離レベルの詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。