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. サブクエリとは何ですか? 2. サブクエリはどこに表示されますか? 3. Whereサブク...
MySQLで重複データを削除する詳細な例重複レコードには 2 つの意味があります。1 つは完全に重複...
1. yumソースの設定ファイルを入力します 2.lsで設定ファイルを表示する 3. ディレクトリを...
3日間さまざまな困難に遭遇した後、ようやくこの機能を実現しました。正常に実装できる方法を見つける前に...
1. RPMバージョンのインストールデータベースの他のバージョンがあるかどうかを確認し、ある場合は完...
目次1. コンテンツの概要2. 文字セットと文字順序の概念と関係3. MySQL でサポートされてい...
この記事は参考までにmysql 8.0.19 winx64.zipのインストールチュートリアルを記録...
設計意図ページを開発する際には、ページ上のナビゲーション メニューをクリックしたときにページを対応す...
1. 従来のbinlogマスタースレーブレプリケーション、エラー報告をスキップする方法 mysql&...
分離レベル:隔離はあなたが考えるよりも複雑です。 SQL 標準では 4 つの分離レベルが定義されてお...
目次1. インストールの準備1. Linux関連情報の表示(Linuxコマンドライン操作) 2. M...
目次React Hooks に基づく状態共有の実装ユーザーエクスペリエンスこの記事では、主に Rea...
HTML スタイル タグスタイルタグ - ドキュメント内でスタイルを宣言するときにこのタグを使用しま...
ローカルでコンテナを作成した後、このコンテナに基づいてローカル イメージを作成し、このイメージを D...