データベーストランザクション分離レベル データベース トランザクションには、低から高まで 4 つの分離レベルがあります。
これら 4 つのレベルにより、ダーティ リード、非反復リード、ファントム リードの問題を 1 つずつ解決できます。 √: 出現する可能性がある ×: 出現しない
注: 分離レベルのシナリオについては、主に複数のトランザクションが同時に実行される場合について説明します。 ダーティリード、ファントムリード、非反復リード ダーティリード: ダーティ リードとは、トランザクションがデータにアクセスしてデータを変更しているときに、この変更がデータベースに送信されていない場合に、別のトランザクションもそのデータにアクセスしてそのデータを使用することを意味します。 繰り返し不可能な読み取り: トランザクション内で同じデータを複数回読み取ることを意味します。このトランザクションが終了する前に、別のトランザクションも同じデータにアクセスします。したがって、最初のトランザクションでの 2 回の読み取りでは、2 番目のトランザクションの変更により、最初のトランザクションによって 2 回読み取られたデータが異なる可能性があります。これは、トランザクションで 2 回読み取られるデータが異なることを意味するため、非反復読み取りと呼ばれます。 (つまり、同じデータの内容を読み取ることはできません) ファントムリーディング: トランザクションが独立して実行されない場合に発生する現象を指します。たとえば、最初のトランザクションがテーブル内のデータを変更し、この変更がテーブル内のすべてのデータ行に関係する場合などです。同時に、2 番目のトランザクションもテーブルに新しいデータ行を挿入して、このテーブル内のデータを変更します。すると、最初のトランザクションを操作しているユーザーが、まるで幻覚を見ているかのように、テーブル内に変更されていないデータ行がまだ残っていることに気付くことがあります。 例: 表面: テーブル `cc_wsyw126_user_test_isolation_copy` を作成します ( `id` int(11) NOT NULL AUTO_INCREMENT, `password` varchar(64) NOT NULL, `age` int(11) NOT NULL, 主キー (`id`)、 キー `ix_age` (`age`) )ENGINE=MyISAM デフォルト文字セット=utf8; シミュレーションデータ: `cc_wsyw126_user_test_isolation_copy` (`password`, `age`) に挿入します 価値観 ('1', 1)、 ('22)、 ('3', 3)、 ('4'、4); 最初のトランザクションA: 取引を開始する cc_wsyw126_user_test_isolation_copy (パスワード、年齢) の値 ('5',5) を挿入します 専念 2番目のトランザクションB: 取引を開始する cc_wsyw126_user_test_isolation_copy を更新し、年齢を 2 に設定し、パスワードを >='2' に設定します。 cc_wsyw126_user_test_isolation_copy から * を選択します。パスワードは '2' 以上です。 専念 再現手順: トランザクション A の挿入ステートメントがトランザクション B の SELECT ステートメントの前、更新ステートメントの後にある限り、問題ありません。 MySQL InnoDB ストレージ エンジンは、マルチバージョン同時実行制御プロトコル (MVCC (Multi-Version Concurrency Control)) と、Repeatable Read (RR) 分離レベルでのファントム読み取りを防ぐための次のキー ロック戦略を実装しています。ファントム リードをテストする場合は、MyISAM を試してください。 クラスター化インデックス (主キー インデックス) に一意制約がある場合、InnoDB はデフォルトの次のキー ロックをレコード ロックにダウングレードします。 読んでいただきありがとうございます。お役に立てれば幸いです。このサイトをサポートしていただきありがとうございます。 以下もご興味があるかもしれません:
|
<<: Vue Elementのテーブルコンポーネントをカプセル化する方法
目次イベントページの読み込みイベント委任イベントの切り替えイベント要約するイベントページの読み込み1...
少なくとも 5 冊のベストセラー書籍の順序なしリストを含む HTML ページを作成します。各書籍の前...
この記事では、参考までにMySQL 8.0に接続できないJavaの問題をまとめて紹介します。具体的な...
正直に言うと、この質問には MySQL のコア知識がかなり必要で、コンピュータ ネットワークの知識を...
HTML ページでは、ボタンやテキスト ボックスなどの視覚要素にフォーカスを設定したり、フォーカスを...
導入コンピューティングのニーズが拡大し続けるにつれて、アプリケーションのメモリに対する需要も増加して...
Nginxの仕組みNginx はコアとモジュールで構成されています。 Nginx 自体は実際にはほと...
この記事では、ログインスライダー検証を実装するためのJavaScriptの具体的なコードを参考までに...
序文このコントロールを直接印刷すると下部に透かしが入りますが、公式 Web サイトから購入することで...
この記事では、例を使用して、MySQL 共同インデックスの機能と使用方法を説明します。ご参考までに、...
インストール前の作業: VMware Workstation がインストールされていることを確認し、...
現実世界では、鍵は外の世界から身を隠したいときに使用するツールです。コンピュータでは、複数のプロセス...
先週末、兄弟プロジェクトはより良いサービスを提供するためにサーバーを拡張する準備をしていました。兄弟...
目次1. プロジェクト統合1. CDNインポート方法: 2. 箱の梱包を確認する3. 迅速な箱詰め4...
1. Oracle をインストールします。インターネット上には Oracle のインストール手順が多...