取引トランザクションはビジネス ロジックの基本単位です。 各トランザクションは一連の SQL ステートメントで構成されます。 トランザクションに関連する DML ステートメント ( トランザクションの存在により、データのセキュリティが確保されます。 トランザクションのメカニズム: DML ステートメントを実行するたびに操作は記録されますが、データは変更されません。 最後に、トランザクションをコミット(レコードを削除、ハードディスクのデータを変更)するか、トランザクションをロールバック(レコードを削除、データを変更しない)します。 トランザクションには4つの主要な特性がある:ACID
トランザクション分離レベル: 1. このレベルではダーティリード現象が発生します 2. このレベルではダーティ リードの問題は解決されますが、繰り返して読み取ることはできません。 3. 反復不可能な読み取りの問題は解決されましたが、ファントム読み取りは依然として存在し、読み取られたデータは実際のものではありません。 4. シリアル読み取り/シリアル読み取り。マルチスレッドのスレッドセーフと同様に、すべての問題が解決されます。しかし、非効率な部分もあります。トランザクションをキューに入れる必要があるためです。 トランザクションを手動でコミットします。 DML を実行する前に。まず トランザクションの手動ロールバックをデモンストレーションします。 t_user1 が存在する場合はテーブルを削除します。 テーブルt_user1を作成します( id int(3) 主キー auto_increment, ユーザー名varchar(10) ); mysql> テーブル t_user1( を作成します。 -> id int(3) 主キー auto_increment, -> ユーザー名 varchar(10) -> ); クエリは正常、影響を受けた行は 0 行 (0.02 秒) mysql> t_user1(ユーザー名) に値('h1') を挿入します。 クエリは正常、1 行が影響を受けました (0.01 秒) mysql> t_user1 から * を選択します。 +----+----------+ | ID | ユーザー名 | +----+----------+ | 1 | h1 | +----+----------+ セット内の 1 行 (0.00 秒) mysql> rollback; // トランザクションのロールバック クエリは正常、0 行が影響を受けました (0.00 秒) mysql> select * from t_user1; //ロールバック後も、mysqlが自動的に送信するため、以前と同じになります +----+----------+ | ID | ユーザー名 | +----+----------+ | 1 | h1 | +----+----------+ セット内の 1 行 (0.00 秒) mysql> start transaction; // トランザクションを手動で開始し、自動トランザクション送信をオフにします。クエリは正常で、0 行が影響を受けました (0.00 秒) mysql> t_user1(ユーザー名) に値('h2') を挿入します。 クエリは正常、1 行が影響を受けました (0.01 秒) mysql> t_user1(ユーザー名) に値('h3') を挿入します。 クエリは正常、1 行が影響を受けました (0.00 秒) mysql> t_user1(ユーザー名) に値('h4') を挿入します。 クエリは正常、1 行が影響を受けました (0.00 秒) mysql> t_user1 から * を選択します。 +----+----------+ | ID | ユーザー名 | +----+----------+ | 1 | h1 | | 2 | h2 | | 3 | h3 | | 4 | h4 | +----+----------+ セット内の 4 行 (0.00 秒) mysql> rollback; // ロールバッククエリは正常、0 行が影響を受けました (0.01 秒) mysql> t_user1 から * を選択します。 +----+----------+ | id | ユーザー名 | 結局、ハードディスク上のデータは以前と同じままです。 +----+-----------+ ハードディスク上のデータを変更せずに削除レコードをロールバックします。 | 1 | h1 | +----+----------+ セット内の 1 行 (0.00 秒) これで、MySQL トランザクション分析に関するこの記事は終了です。MySQL トランザクションに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Nodejsはgitee実装コードに自動的に同期するドキュメント同期ツールを作成します
>>: HTML でカスタム画像を使用してチェックボックスを表示する方法
SSHPASSをインストールする最新のオペレーティング システムでは、sshpass パッケージはデ...
MySQL の一般的なシナリオ: 2 つのデータ セットの交差と差を取得するステップ1. 2つのコレ...
この記事では、MySQL 最適化のヒントで重複したエントリを削除する方法を例を使って説明します。ご参...
目次1 現在のデータベースの内容を表示し、データベースをバックアップする2 bin_log関数を有効...
MySQL のデータはディスクに書き込む必要があることは誰もが知っています。ディスクの読み取りと書き...
CSSの記述順序1. 位置属性(位置、上、右、z-index、表示、フロートなど) 2. サイズ(...
01 ウィンターフレーク(個人のみ) 02 スノートップキャップ(業務用) 03 モディウス「フリ...
目次1. 配列誘導1. 文字列を配列に分割する2. コレクションとマップを新しい配列に変換する3. ...
tomcat を https アクセスに対応させる方法ステップ: (1)キーストアファイルを生成する...
1. jdkダウンロードアドレスをダウンロードする我下載的是jdk-8u221-linux-x64....
1. Yumのインストール yum でサブバージョンをインストール 2. 構成1. 倉庫を作る/ho...
Docker はホストマシン上のブリッジを仮想化します。コンテナを作成して起動すると、各コンテナには...
1. コマンドの紹介時間は、コマンドの実行に費やされた時間や関連するシステム リソース、その他の情報...
ヒント1: 集中力を保つ最高のモバイル アプリは、1 つのことを非常にうまく行うことに重点を置いてい...
比較的シンプルな業務のプロジェクトもありますが、フロントエンドのページングを多用します。プラグインの...