1. トランザクションとは何ですか?トランザクションは完全なビジネス ロジック ユニットであり、分割することはできません。 t_act を更新し、balance=balance-10000 として actno='act-001' に設定します。 t_act を更新し、balance=balance+10000 に設定します。ただし、actno='act-0021' です。 上記の 2 つの DML ステートメントは、同時に成功するか、同時に失敗する必要があります。一方が成功し、もう一方が失敗することは許可されません。 2. トランザクションに関連するステートメントは、挿入、削除、更新の3つのDMLステートメントのみです。 「なぜ DML ステートメントは挿入、削除、更新の 3 つだけなのですか?」 3. すべてのビジネス操作を 1 つの DML ステートメントを使用して処理できると仮定した場合、トランザクション メカニズムは依然として必要ですか?取引は必要ありません。 4. 取引の原則知らせ: 5. トランザクションの4つの特性: ACIDトランザクションには4つの主要な特性がある:ACID 以下に、上記のトランザクションの 4 つの主な特性について、さらに詳しく説明します。「原子性」: 一連の操作は成功するか失敗するかのいずれかであり、この一連の操作は分割できません。 6. トランザクション間の分離「トランザクション分離には分離レベルがあり、理論的には 4 つの分離レベルがあります」 1) 第1レベル: コミットされていない読み取り相手方のトランザクションはまだ送信されておらず、現在のトランザクションは相手方が送信していないデータを読み取ることができます。 2) 第2レベル: コミットされた読み取り相手側のトランザクションが送信された後にデータを読み取ることができます。 3) 第3レベル: 繰り返し読み取りこの分離レベルは、繰り返し不可能な読み取りの問題を解決します。 4) 第4レベル: シリアル化可能な読み取りすべての問題を解決しました。 「注目すべきは」 7. デモトランザクション分離レベル(デモデータを自分で作成する)1) トランザクションをデモンストレーションする前に習得する必要がある知識ポイント。1) デフォルトでは、MySQL トランザクションは自動的にコミットされます。 2) 自動コミットとは何ですか? DML ステートメントが実行されるたびに、自動的に 1 回送信されます。 したがって、トランザクションをデモンストレーションする前に、まず自動コミットをオフにする必要があります。 「自動コミットステートメントをオフにする」:トランザクションを開始します。 3) 「トランザクションを示すために知っておく必要がある 3 つのコマンド:」 -- 自動トランザクションコミット機能をオフにします。 トランザクションを開始します。 -- トランザクションをコミットします。 専念; -- トランザクションをロールバックします。最後のコミット ポイントまでのみロールバックします。 ロールバック; 2) グローバルトランザクション分離レベルを設定します。「グローバルトランザクション分離レベルを設定します。設定後、ログアウトして再度ログインしてください。」 -- 最初のレベルをグローバル トランザクション分離レベル read uncommitted に設定します。 -- 2 番目のレベルのグローバル トランザクション分離レベルを読み取りコミットに設定します。 -- 3 番目のレベルを設定します (システムのデフォルトのトランザクション レベル、設定する必要はありません) グローバルトランザクション分離レベルを繰り返し読み取りに設定します。 -- 4 番目のレベルのグローバル トランザクション分離レベルを serializable に設定します。 「グローバル トランザクション分離レベルを表示する」 mysql> @@global.tx_isolation を選択します。 +-----------------------+ | @@global.tx_isolation | +-----------------------+ | 繰り返し読み取り | +-----------------------+ セットに 1 行、警告 1 件 (0.00 秒) 3) コミットされていない読み取りをデモンストレーションします。まず、グローバル トランザクション分離レベルを設定します。 以下は正式なデモンストレーションです。 4) デモの読み取りコミットまず、グローバル トランザクション分離レベルを設定します。 以下は正式なデモンストレーションです。 5) 繰り返し読み取りのデモンストレーションまず、グローバル トランザクション分離レベルを設定します。 以下は正式なデモンストレーションです。 これには注意が必要です: ここで実演されているのは「繰り返し読み取り」です。右のウィンドウでは一連のトランザクション処理を実演しています。左のウィンドウはまったく読み取りできません。左のウィンドウで読み取られるのは、常に元のデータのバックアップ データです。 どのように理解しますか? 左ウィンドウのトランザクション機能もオンになっていることを忘れないでください。トランザクションを開始します。左ウィンドウのトランザクション機能が終了しない限り(コミットまたはロールバックでトランザクションを終了できます)、左ウィンドウによって読み取られるデータは常に元のデータのバックアップ データです。これが「ファンタジー」と呼ばれるものです。右側の黒いウィンドウでどのような変更を加えても、トランザクションをコミットしても、左側のウィンドウには表示されません。 左側に黒いウィンドウがあります。この変更を確認するにはどうすればよいでしょうか? 「 左側の黒いウィンドウのみ、まず現在の黒いウィンドウのトランザクションを終了し、再度読み取ると、実際にデータが変更になったことがわかります。 6) 連続した読み方を実演するまず、グローバル トランザクション分離レベルを設定します。 以下は正式なデモンストレーションです。 「commit」コマンドを使用して左側のウィンドウでトランザクションがコミットされると、右側のウィンドウで変更を確認できます。 上記は、MySQL データベース トランザクション例チュートリアルの詳細な内容です。MySQL データベース トランザクションの詳細については、123WORDPRESS.COM の他の関連記事に注目してください。 以下もご興味があるかもしれません:
|
<<: Dreamweaver8を使用してウェブサイトのファイルをチェックして整理する方法
デザインの分野では、毎年さまざまなデザインのトレンドや流行があります。たとえば、近年のレスポンシブデ...
ページの自動スクロール効果は JavaScript で実現できますが、今日偶然、JS 制御なしでさま...
この記事の例では、カスタムドロップダウンボックスを実装するためのjsの具体的なコードを参考までに共有...
1.html部分コードをコピーコードは次のとおりです。 <!DOCTYPE html> ...
目次説明する成し遂げるプロジェクトのディレクトリ構造は次のとおりです。効果図は以下のとおりです要約す...
目次1. データ型1. MySQL空間データとは何か2. GeoJSONとは3. 空間データ型のフォ...
1. mysql/mysql-server:latestイメージを使用してMySQLインスタンスを素...
Linux 操作実験環境: Centos7 仮想マシンまず、共通ユーザーgubeiqingを作成しま...
目次この期間の目標1. 関数の実装1.1 構造層1.2 スタイルレイヤー1.3 行動層1.3.1 フ...
背景データ ウェアハウス モデリングでは、何ら処理されていない元のビジネス レイヤー データは OD...
いくつかの記事を読んだ後、ようやく MySQL で row_number() ソートを実装する方法が...
NodeJS は次のファイルをコピーします:通常、小さなファイルのコピー操作では、ストリーム パイプ...
ワームは、その名前が示すように、自ら複製し、その数は倍増、つまり指数関数的に増加します。 MySQL...
聞く: CSS を使用してハイパーリンクのスタイルを設定しましたが、ホバーしても機能しません。なぜこ...
ajax 処理後にサーバーから返される responseText が JSON データであるという問...