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はドロップダウンメニューのカプセル化を実装します
目次背景質問問題分析と解決策新たな問題問題分析と解決策背景node-schedule スケジュール ...
まずコードファイルの構造を見てみましょう。エントリファイル (index1.js) の内容: ...
Linux で Ctrl+c、Ctrl+d、Ctrl+z はどういう意味ですか? Ctrl+c と ...
基本的な環境設定まずはご自身でドメイン名とサーバーを購入してくださいクラウドサーバーECSに基づいて...
この記事では、検証コード機能を実装するためのvue+spring bootの具体的なコードを例として...
目次序文: 1.DEFINERの簡単な紹介2. いくつかの注意点要約:序文: MySQL データベー...
目的: MySQL 集計関数のネストされた使用集計関数は直接ネストできません。例: max(coun...
この記事では、MySQL トリガーの定義と使用方法について説明します。ご参考までに、詳細は以下の通り...
テーブルを作成する テーブル `map` を作成します ( `id` int(11) NULLではな...
この記事では、例を使用して、MySQL でストアド プロシージャを作成し、ループでレコードを追加する...
複雑なテーブル構造では、一部のセルが水平方向に複数のセルにまたがるため、行間属性 ROWSPAN を...
シェルスクリプトを使用したMySQLデータベースの自動バックアップデータベースを頻繁にバックアップす...
Linux に zip 解凍機能をインストールする通常、 zip コマンドは Linux サーバーに...
概要: 仕事でも面接でも、Web フロントエンドのパフォーマンスを最適化することは非常に重要です。で...
このシステムでは、# 記号は root ユーザーを表し、$ 記号は通常のユーザーを表します。では、ど...