2つのケース: 1. 索引あり 2. 索引なし 前提条件: 方法: コマンドラインを使用してシミュレートする 1. MySQL はデフォルトでトランザクションを自動的にコミットするため、まず現在のデータベースでトランザクションが自動的にコミットされているかどうかを確認する必要があります。 コマンド: select @@autocommit; 結果は次のとおりです。
1の場合は、コマンドset autocommit = 0;を実行して自動コミットを無効にします。 2. 現在のデータベーステーブル形式は次のとおりです。
当然ですが、主キー以外のインデックスは追加していません。 実例: 1. 索引なし トランザクションを開始するには、begin; コマンドを実行し、変更を加えるには、update tb_user set phone=11 where name=”c1”; コマンドを実行します。まだトランザクションをコミットしないでください。 別のウィンドウを開き、コマンドを直接実行します: update tb_user set phone=22 where name=”c2”; コマンドが停止していることがわかります。ただし、前のトランザクションがコミットを通じて送信されると、コマンドは正常に実行されて終了し、テーブルがロックされていることが示されます。 2. 名前フィールドにインデックスを追加する tb_user(name) にインデックス index_name を作成します。 次に、ステップ1と同じように操作を続行します。つまり、トランザクションを開いて、update tb_user set phone=11 where name=”c1”; を実行します。まだコミットしないでください。 次に、別のコマンド update tb_user set phone=22 where name=”c2”; を実行すると、コマンドがスタックせず、テーブルがロックされていないことがわかります。 しかし、別の update tb_user set phone=22 where name=”c1”; が同じ行を更新する場合、その行はロックされていることを意味します。 3. まとめ インデックスがない場合、更新によってテーブルがロックされます。インデックスが追加されると、行がロックされます。 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: IDEA 構成の Tomcat 起動エラーの問題を解決する
>>: Vue3.0はドロップダウンメニューのカプセル化を実装します
クロージャは、純粋関数型プログラミング言語の伝統的な機能の 1 つです。クロージャをコア言語構造の不...
この記事では、動的なパーティクル効果を実現するためのjQueryの具体的なコードを参考までに紹介しま...
目次1. プラグイン2. 幕間3. 実装4. 検証機能1. プラグインまず、私たちが選んだプラグイン...
マージントップの崩壊とはmargin-top の崩壊は、CSS ボックス モデルで発生する現象です。...
nginx がリソース圧縮を実現する原理は、ngx_http_gzip_module モジュールを介...
リストは、テーブルをコンテナーとして使用するテキストまたはグラフの形式として定義されます。商品の種類...
マーキー要素を使用すると、単純なフォント(画像など)のスライドやその他の効果を実現できます。コードを...
フロントエンドテクノロジー層 (写真は少し極端ですが、参考までに) Javascript と DOM...
目次1. 準備2. グローバルコンポーネント quill-editor を定義する1. テンプレート...
システム環境: Ubuntu 16.04LTSこの記事では、6 つの Docker コンテナを使用し...
1. リンク解除機能ハード リンクの場合、unlink はディレクトリ エントリを削除し、inode...
プロジェクトを構築する対応するパスでコマンドラインを実行します: react-native init...
ページ置換アルゴリズム: 本質は、限られたメモリをワイヤレス プロセスに対応できるようにすることです...
背景: 1. データベースに通知テーブルがある あなたは見ることができますgmt_create、通知...
複数の注文を含むリストが必要です。各注文は一意にすることも、複数の注文を結合することもできます。各注...