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

推薦する

MySQL ページング中にオフセットが大きすぎる場合の SQL 最適化の経験の共有

問題を見つけるコンテンツをリストで表示すると、リスト内のコンテンツの数は多いかもしれませんが、ユーザ...

select count() と select count(1) の違いと実行方法

Count(*) または Count(1) または Count([column]) は、おそらく S...

MySQLトランザクション処理の使用方法とサンプルコードの詳細な説明

MySQL トランザクション サポートは、MySQL サーバー自体にバインドされているのではなく、ス...

一般的な Linux ディストリビューションのミラーソース構成の概要

最近 Linux を研究していて、いくつかの Linux ディストリビューションを試してみましたが、...

Vue3デスクトップアプリケーションの構築方法

この記事では、Vite を使用して Vue 3 デスクトップ プロジェクトを開発する方法について説明...

jQueryは時間セレクタを実装する

この記事の例では、参考までに時間セレクターを実装するためのjQueryの具体的なコードを共有していま...

Linux の RPM パッケージでインストールされた xinetd ベースのサービスの管理

目次序文1. xinetdサービスに基づく起動管理(1)Telnetサービスのインストール(2)Te...

Xshellの一般的な問題と関連する設定の詳細な説明

この記事では、Xshell と関連する構成の一般的な問題について説明します。この記事の構成は、主に ...

RGBカラーテーブルコレクション

RGBカラーテーブル色英語名RGB 16色雪255 250 250 #FFFAFAゴーストホワイト2...

フレックスレイアウトにおけるflex-growとflex-shrinkの計算方法の詳しい説明

CSS のFlex(彈性布局)すると、Web ページのレイアウトを柔軟に制御できます。Flex Fl...

MySQL での実行計画の詳細分析

序文効率的なSQL文の書き方は、Explain実行計画の分析と切り離せません。実行計画とは何か、効率...

純粋な HTML タグにどれくらい精通していますか?

以下の HTML タグには、基本的に既存のタグがすべて含まれています。数分かけて 1 つずつ参照する...

Taobao ストアでズームインする効果は、スライドショーを使用する原理に似ています。

今日は、スライドを使用する原理に似た、Taobao のフロントエンドのマウス ズーム効果に慣れました...

VueでEchartsチャートの幅と高さの適応を実現する実践

目次1. インストールとインポート2. 手ぶれ補正機能を定義する3. チャートコードを描くinit ...

JS 面接の質問: forEach はループから抜け出すことができますか?

この質問をされたとき、私は無知で頭が真っ白になりました。もちろん、正しく答えられませんでした。私はず...