2つのケース:1. 索引あり 2. 索引なし 前提条件:方法: コマンドラインを使用してシミュレートする 1. MySQL はデフォルトでトランザクションを自動的にコミットするため、まず現在のデータベースでトランザクションが自動的にコミットされているかどうかを確認する必要があります。 コマンド: select @@autocommit; 結果は次のとおりです。 +--------------+ | @@自動コミット | +--------------+ | 0 | +--------------+ 1の場合は、コマンドset autocommit = 0;を実行して自動コミットを無効にします。 2. 現在のデータベーステーブル形式は次のとおりです。 tb_user | テーブル `tb_user` を作成する ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `name` varchar(32) デフォルト NULL, `phone` varchar(11) デフォルト NULL, `operator` varchar(32) デフォルト NULL, `gmt_create` 日時 デフォルト NULL、 `gmt_modified` 日時 デフォルト NULL、 主キー (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 デフォルト CHARSET=utf8 当然ですが、主キー以外のインデックスは追加していません。 実例: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. まとめ インデックスがない場合、更新によってテーブルがロックされます。インデックスが追加されると、行がロックされます。 これで、MySQL トランザクションの更新がテーブルをロックするかどうかについてのこの記事は終わりです。MySQL トランザクションの更新がテーブルをロックするかどうかの詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM を応援してください。 以下もご興味があるかもしれません:
|
<<: Dockerのオンラインおよびオフラインインストールと一般的なコマンド操作
Vueはブール値でストレージを保存します今日、問題に遭遇しました。バックグラウンドから返された真偽の...
● 新しいプロジェクトのセキュリティを確保するためにクラウド データを購入する予定でした。 Alib...
序文この記事では、最近私が遭遇した 2 つの状況について説明します。今後、新たな発見があれば追加して...
開発およびデバッグのプロセスでは、新しいコードと古いコードの違いを比較する必要があります。比較には、...
現在、アプリケーション開発は基本的にフロントエンドとバックエンドに分離されています。主流のフロントエ...
目次1. ノード、ツリー、仮想DOM 2. 仮想DOM 2.1 データオブジェクトの詳細2.2 制約...
目次1. jsメモリ2. 譲渡3. 浅いコピー4. ディープコピー序文:以下の記事を読む前に、記憶に...
1. Apacheをインストールする $ sudo apt update && su...
この記事では、テーブルページング機能を実現するためのVueの具体的なコードを例として紹介します。具体...
MySQLユーザー権限を表示する2つの方法を紹介します1. MySQL grantsコマンドを使用す...
Flash ファイル形式: .FLV および .SWFフラッシュ ビデオ形式には、.flv と .s...
これまで使用していたイメージはすべて DockerHub パブリック リポジトリから取得していました...
MySQL をインストールするための前提条件: CentOS 7 64 ビットをインストールし、Ce...
現在、このような要件があります。ログインした人がカスタマー サービス担当者である場合、注文は「このカ...
目次1. 糖衣構文とは何ですか? 2. VUE の構文糖とは何ですか? 1. 最も一般的な構文シュガ...