MySQLトランザクションが効率に与える影響の分析と概要

MySQLトランザクションが効率に与える影響の分析と概要

1. データベース トランザクションによりデータベースのパフォーマンスが低下します。データの一貫性と分離性を確保するには、トランザクションをロックする必要があります。

2. 他のトランザクションがこの部分のデータを操作する必要がある場合、最後のトランザクションが終了するまで待機する必要があります (コミット、ロールバック)。

テーブル acct を作成します (
    acct_no varchar(32)、
    acct_name varchar(32)、
    残高小数点(16,2)
);
 
アカウント値に挿入
    ('0001','ジェリー', 1000),
    ('0002'、'トム'、2000年);
 
start transaction; -- トランザクションを開始します update acct set balance = balance - 100 where acct_no = '0001'; -- 控除者をシミュレートします update acct set balance = balance + 100 where acct_no = '0002'; -- 受取人をシミュレートします commit; -- トランザクションのコミット rollback; -- トランザクションのロールバック

知識ポイントの拡張:

取引

  • 原子性: トランザクション全体のすべての操作は、正常にコミットされるか、失敗した場合はロールバックされます。
  • 一貫性: データベースをある一貫性のある状態から別の一貫性のある状態に変換するトランザクションを指し、トランザクションの開始前と開始後にデータベースの整合性が破壊されることはありません。
  • 分離: トランザクションがデータベース内のデータを変更し、変更が完了するまで他のトランザクションには表示されないことが必要です。
  • 永続性: トランザクションがコミットされると、そのトランザクションによる変更はデータベースに永続的に保存されます。この時点では、システムがクラッシュしても、送信された変更されたデータは失われません。

大企業

実行に時間がかかり、大量のデータを処理するトランザクション

  • ロックするデータが多すぎるため、ブロックやロックタイムアウトが頻繁に発生する
  • ロールバックには長い時間がかかります
  • 実行時間が長く、マスタースレーブ遅延が発生する可能性がある

大規模な取引を処理する方法:

  • 一度に大量のデータを処理しないようにする
  • トランザクションから不要な選択操作を削除する

これで、MySQL トランザクションが効率に与える影響に関するこの記事は終了です。MySQL トランザクションが効率に与える影響の詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • MySQL XA で分散トランザクションを実装する方法
  • MySQLクエリトランザクション処理へのノード接続の実装
  • MySQL データベース トランザクション例のチュートリアル
  • MySQL と Golan 間の従来の分散トランザクションのための 7 つのソリューション
  • MySQL トランザクション分離レベルの詳細
  • MySQLデータベースのトランザクションとインデックスの詳細な説明
  • MySQL トランザクション分析

<<:  Vue3+Vite+TS は、要素プラスビジネスコンポーネントの二次カプセル化を実装します sfasga

>>:  HTML テーブルレイアウト例の説明

推薦する

JSONオブジェクトのキーを置き換える最良の方法

JSON (JavaScript Object Notation、JS Object Notatio...

js の hasOwnProperty のプロパティとインスタンスの使用法の詳細な説明

1. js は hasOwnProperty が不正に占有されることから保護しません。オブジェクトに...

Nginx セッション共有問題の解決策の分析

この記事は主に、Nginx セッション共有の問題に対する解決策を紹介します。記事内のサンプル コード...

MySQL 8.0.23 のインストールと設定方法のグラフィックチュートリアル (Win10 の場合)

この記事では、MySQL 8.0.23のインストールと設定方法を参考までに紹介します。具体的な内容は...

JavaScript キャンバスで動的な点と線の効果を実現

この記事では、動的な点と線の効果を実現するためのJavaScriptキャンバスの具体的なコードを参考...

CSS でショートカット プロパティを記述する際は、トラブルの順序に注意してください (落とし穴を避けるため)

ショートハンドプロパティは、複数のプロパティに同時に値を割り当てるために使用されます。たとえば、fo...

MySQLのorder byとlimitを混在させる際の落とし穴の詳細な説明

MySQL では、ソートには order by を、ページングには limit をよく使用します。最...

Vue の get リクエストと post リクエストの違いのまとめ

このチュートリアルの動作環境: Windows 7 システム、vue 2.9.6 バージョン、DEL...

VUE+Canvasはデスクトップピンボールブロック破壊ゲームのサンプルコードを実装します

誰もがピンボールやレンガ崩しのゲームをプレイしたことがあるでしょう。左と右のキーを使用して、下にある...

Dockerを使用してJenkinsをインストールする方法

目次1. イメージをプルする2. ローカルデータボリュームを作成する3. コンテナを作成する4. J...

ボタンの権限判定を実装するためのVueカスタムv-has命令

アプリケーションシナリオバックグラウンド管理システムを例にとると、各ユーザーには異なるボタン権限があ...

jQuery を使用してカルーセル効果を実装する

この記事では、jQueryでカルーセルチャートを実装するための具体的なコードを参考までに共有します。...

Nginxのアクセス制限設定の詳細な説明

Nginxのアクセス制限設定とはNginx のアクセス制限は、IP ベースのアクセス制御とユーザーベ...

モバイル開発チュートリアル: ピクセル表示の問題の概要

序文モバイル端末の開発の過程で、モバイル端末のディスプレイはデスクトップ端末のディスプレイとは一般的...

Vue で wangeditor リッチテキスト編集を使用する際の問題

wangEditor は、JavaScript と CSS に基づいて開発された Web リッチ テ...