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 テーブルレイアウト例の説明

推薦する

CSS3のbox-shadowプロパティの使い方の詳細な例

CSS には多くの属性があります。特に複数の値を設定する必要がある属性は、長期間使用しないと忘れられ...

スクリプトを使用して、ワンクリックでDockerイメージをパッケージ化してアップロードします。

著者は1年以上マイクロフロントエンドプロジェクトに取り組んできました。チームは10個のマイクロアプリ...

擬似静的およびクライアント適応型 Nginx の設定方法

バックエンドは thinkphp3.2.3 フレームワークを使用します。他の言語を使用している場合は...

Linux のハードリンクとソフトリンクの区別

Linux には、2 種類のファイル接続があります。1 つは Windows のショートカットに似て...

HTML の表のフレームとルール属性の詳細な説明

テーブル タグの frame 属性と rules 属性は境界線の表示を制御できます。フレーム プロパ...

MySQL EXPLAIN ステートメントの使用例

目次1. 使用方法2. 出力結果1.id 2.選択タイプ3.表4.パーティション5.タイプ6.可能な...

MySQL/MariaDB ルートパスワードリセットチュートリアル

序文パスワードを忘れることは、よく遭遇する問題です。MySQL または MariaDB データベース...

Nginx サービス クイック スタート チュートリアル

目次1. Nginx の紹介1. Nginx とは何ですか? 2. Nginx を使用する理由3. ...

プロフェッショナルおよび非プロフェッショナルのウェブデザイン

まず、Web ページのスタイルの形成は、主に Web ページのレイアウト設計、ページの色処理、画像と...

CentOS7 で yum ソースをインストールし、コマンド rz と sz をアップロードおよびダウンロードする方法 (画像付き)

** CentOS7 で yum ソースをインストールし、rz および sz コマンドをアップロー...

Docker を使用した ELK7.3.0 ログ収集サービスの導入に関するベスト プラクティス

最初に書くこの記事では、ELK 7.3.0 の展開についてのみ説明します。展開環境:システムセントO...

Javascript 仮想 DOM の詳細な説明

目次仮想DOMとは何ですか?なぜ仮想DOMが必要なのでしょうか?仮想 DOM はどのようにして実際の...

Nginx レイヤー 4 負荷分散構成ガイド

1. レイヤー4負荷分散の概要レイヤー 4 ロード バランシングとは何ですか?いわゆる 4 層負荷分...

vue cli で env を使用するガイド

目次序文紹介-公式設定例序文vueCli を使用してプロジェクトを開発したことのある方は、少しがっか...

TypeScript の関数

目次1. 関数の定義1.1 JavaScript の関数1.2 TypeScriptの関数2. オプ...