select クエリ ステートメントはロックされませんが、select .......for update はクエリ機能に加えてロックされ、悲観的ロックになります。 したがって、行ロックを追加するかテーブル ロックを追加するかは、インデックス/主キーが使用されているかどうかによって決まります。 インデックス/主キーがない場合、それはテーブル ロックであり、そうでない場合は行ロックです。 確認する:テーブルSQLの作成 //idは主キーです //nameは一意のインデックスです CREATE TABLE `user` ( `id` INT ( 11 ) NOT NULL AUTO_INCREMENT, `name` VARCHAR(255) デフォルト NULL, `age` INT ( 11 ) デフォルト NULL, `code` VARCHAR(255) デフォルト NULL, 主キー ( `id` )、 キー `idx_age` ( `age` ) BTREE の使用 ) エンジン = INNODB AUTO_INCREMENT = 1570068 デフォルト文字セット = utf8 自動送信をオフにして、@@autocommit=0; を設定して手動送信に設定する必要があります。 0 は手動送信を表し、1 は自動送信を表します。 例の検証と組み合わせる例1: 主キー ID をクエリの条件として使用し、別のトランザクションを開始してデータを更新します。更新はブロックされ、ロックされ、クエリ対象の ID 1 の行データがロックされます。 図1は最初のトランザクションを示しており、トランザクションはコミットされていない。 図 2 は、データの更新時にブロックされる 2 番目のトランザクションを示しています。 図 3 は、ロックを長時間取得できないためにエラーが発生する 2 番目のトランザクションを示しています。 例2: ID 2 の別のデータを更新するためのトランザクションを開きます。 例3(インデックス): テーブルが最初に作成されたときに、年齢に対して一意のインデックスが作成されました。 例4: 共通のフィールドコードを使用して操作する 別のトランザクションで、別のデータを更新します。更新が成功すると行がロックされ、失敗するとテーブルがロックされます。 結果: クエリ条件でインデックスまたは主キーが使用されている場合、更新時に ..... を選択すると行ロックが実行されます。 通常のフィールド (インデックス/主キーなし) の場合は、更新に ..... を選択するとテーブルがロックされます。 これで、「select for update はテーブルまたは行をロックするかどうか」というインタビューの質問に関するこの記事は終了です。関連する select for update コンテンツの詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: CSS で TikTok テキスト揺れエフェクトを実装する例
選択肢がある場合は、UTF-8を使用することをお勧めします。実際、Windows システム自体のプロ...
1. mysqldump の使用時にエラー (1064) が報告されます。これは、mysqldump...
1. インストール手順 Linux 環境でのローカル インストールと比較すると、Docker のイン...
目次コンテナ階層サーブレットの検索を要求するプロセス仕組みTomcat のコンテナは Servlet...
みなさんこんにちは。今日は Linux コマンド クエリ アプレットでの WePY クラウド開発の実...
まずpostcss-pxtoremをインストールします: npm install postcss-p...
1 はじめにRedis 、 ANSI C言語で開発されたKey-Valueベースの高性能NoSQLデ...
メタ タグは、ファイル情報を定義し、検索エンジンによる検索を容易にするために Web ページ ファイ...
上の記事で、SWFObject V1.5 の使い方の紹介は一旦終了です。これから、SWFObject...
この記事では、テーブルを動的に読み込み、削除するためのJavaScriptの具体的なコードを参考まで...
Docker はコンテナを起動するときにアクセス ポートを指定します。複数の -p オプションを使用...
この記事では主に、高さが不明な垂直方向の中央揃えを CSS で実装する方法を紹介し、皆さんと共有しま...
まず、in() クエリについて説明します。 「High Performance MySQL」では、イ...
ソフトウェアとハードウェア環境centos7.6.1810 64ビット cat /etc/red...
1.まずサーバーにリモート接続する2. サーバーマネージャーを開く 3役割と機能の追加 4サーバープ...