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はドロップダウンメニューのカプセル化を実装します
*** ハイパーリンクのスタイル設定の例a:link クリックされる前のハイパーリンクの状態a:vi...
ウェブサイト構築におけるカラーマッチングは非常に特殊であり、ウェブサイトのテーマ、感情、雰囲気などの...
目次背景分析するデータシミュレーション1. 従業員テーブルと部門テーブルの2つのテーブルを作成します...
友人たちはいつも、Linux のプロセスを隠す方法を私に尋ねます。私は、どの程度隠したいのか、カーネ...
導入同時接続数を制限するモジュールは http_limit_conn_module です。アドレス:...
1. 呼び出しを実装するステップ:関数をオブジェクトのプロパティとして設定します。これを関数に割り当...
1. dhtmlxツリー dHTMLxTree は機能豊富なツリー メニュー コントロールです。豊...
一般的に言えば、HTML ドキュメント内で極端に大きな <ol> リストに遭遇する可能性...
数式 calc() は CSS の関数であり、主に数学演算に使用されます。 calc() を使用する...
導入Vue Router 、 Vue.jsの公式ルーティング マネージャーです。 Vue.jsのコア...
MySQL インストール パッケージをダウンロードします。mysql-8.0.11-winx64 を...
目次序文状態DockerをインストールするRedisのマスターノードとスレーブノードを構成する序文以...
この記事では、チェックボックスコンポーネントのカプセル化を実装するためのvue3.0の具体的なコード...
前回の記事では、docker サービスをインストールしました。引き続き、Web プロジェクトのデプロ...
Windows のデフォルトのスクロール バー スタイルは見苦しく、プロジェクト内でスクロール バー...