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を使用してウェブサイトのファイルをチェックして整理する方法
1. [admin@JD ~]$ cd opt #ルートディレクトリにoptと入力2. [admin...
最初は悲しい気持ちになりました。スクリーンショットは以下の通りです。 少し苦労しましたが、解決策は次...
Redis の紹介Redis は完全にオープンソースで無料であり、BSD プロトコルに準拠しており、...
目次起源仮想メモリページングとページテーブルメモリのアドレス指定と割り当て関数プロセスメモリ管理デー...
テキストシャドウの紹介CSSでは、 text-shadowプロパティを使用してテキストの影を設定しま...
React Router を理解したいなら、まず歴史を理解する必要があります。より具体的には、Rea...
前回の記事でMySQLサービスが起動しない問題が解決したと分かった後、パスワードなしでrootユーザ...
1. Docker Composeの概要Compose は、マルチコンテナ Docker アプリケー...
Linux に nginx と複数の tomcat をインストールする方法はここでは紹介しません。不...
最近、データベース データのスケジュールされた移行を実行する必要があります。実行プロセス中に何らかの...
目次ミックスインの実装フック関数のマージプロジェクト実践伸ばす要約するVue は mixins AP...
element-uiを使用する場合、el-popoverというよく使われるコンポーネントがありますが...
目次1. プロジェクト環境: 2: DNSサーバーの設定i: 前方解析を構成する: ii: 逆解像度...
たとえば、次のように入力します。 XML/HTML コードdiv#ページ>(div#ヘッダー&...
<br />海外メディアの報道によると、マイクロソフトはソフトウェアの相互運用性への取り...