1. トランザクション特性(ACID)(1)原子性トランザクションに関係するプログラムによって実行されるデータベース変更操作は、すべて成功するか、すべて失敗します。 (2)一貫性トランザクションが実行される前と実行後に、ソースと宛先のバランスが取られます。 (3)孤立同時実行中、各トランザクションは分離され、互いに影響を及ぼしません。 (4)耐久性トランザクションが正常にコミットされると、データの整合性が保証されるはずです。 2. トランザクション分離レベル(1)コミットせずに読む すべてのトランザクションは、コミットされていないトランザクションのデータを見ることができます。 (2)コミットされた読み取り トランザクションは、正常に送信された後にのみ照会できます。 (3)繰り返し可能 同じトランザクションの複数のインスタンスがデータを読み取る場合、コミットされていないレコードが照会され、ファントム読み取りが発生する可能性があります。 mysql デフォルトレベル (4)シリアル化可能 強制的にソートし、読み取られた各データ行に共有ロックを追加します。これにより、多くのタイムアウトとロック競合が発生します。 マイグレーションMySQLのデフォルトのトランザクションレベルは「REPEATABLE-READ」で、これは繰り返し読み取りを意味します。 1. 現在のセッション分離レベルを表示する @@tx_isolation を選択します。 2. システムの現在の分離レベルを表示する @@global.tx_isolation を選択します。 3. 現在のセッション分離レベルを設定する セッショントランザクション分離レベルの繰り返し読み取りを設定します。 4. システムの現在の分離レベルを設定する グローバルトランザクション分離レベルを繰り返し読み取りに設定します。 オラクルOracle データベースは、READ COMMITTED と SERIALIZABLE の 2 つのトランザクション分離レベルをサポートしています。 デフォルトのシステムトランザクション分離レベルはREAD COMMITTEDで、これはコミットされた読み取りを意味します。 1. システムのデフォルトのトランザクション分離レベル(現在のセッション分離レベルでもある)を確認します。 --まずトランザクションを作成する 宣言する トランスID Varchar2(100); 始める trans_id := dbms_transaction.local_transaction_id( TRUE ); 終わり; -- トランザクション分離レベルを確認する s.sid、s.serial#を選択します。 CASE BITAND(t.flag, POWER(2, 28)) 0 の場合は「コミット済みを読み取り」 そうでなければ「シリアル化可能」 END AS isolation_level v$トランザクションtから v$session s を t.addr = s.taddr かつ s.sid = sys_context('USERENV', 'SID') として結合します。 補足: SQL Server のロックとトランザクション分離レベル 分離レベル
ロック共有ロック: 共有読み取り (選択) の場合、テーブル内のデータに共有ロックがかけられたトランザクション (1 つ以上) がある場合 (ロックされたデータの量はロックの粒度によって異なります)、ロックされたデータは更新 (更新) できません。 排他ロック: 1 つしか存在できず、他のトランザクションはロックされたデータに対して共有ロックと排他ロックを取得できません (つまり、排他ロックは共有ロックと互換性がありません。詳細については、ロックの互換性を参照してください)。ここでは、ロックされたデータを特に重視します。 ロックと分離レベルタイプ1 ① READUNCOMMITTED: ロックは発行されない ② READCOMMITTED: 共有ロックを発行し、読み取りが完了するまで保持する ③ REPEATABLEREAD: 共有ロックを発行し、トランザクションの終了まで保持する ④ SERIALIZABLE: 共有ロックを発行し、トランザクションの終了まで保持する タイプ2 ① NOLOCK: ロックは発行されません。 READUNCOMMITTEDと同等 ② HOLDLOCK: 共有ロックを発行し、トランザクション終了まで保持します。 SERIALIZABLEと同等 ③ XLOCK: 排他ロックを発行し、トランザクションが終了するまで保持します。 ④ UPDLOCK: 更新ロックを発行し、トランザクションが終了するまで保持します。 (更新ロック: 他のものをブロックせず、他のものがデータを読み取ることを可能にします (つまり、更新ロックは共有ロックと互換性があります)。ただし、データが最後に読み取られてから更新されていないことを保証します) ⑤ READPAST: 共有ロックを発行しますが、行のロックはスキップされるため、ブロックされません。適用条件: コミット読み取り分離レベル、行レベル ロック、SELECT ステートメント。 タイプ3 ① ROWLOCK: 行レベルロック ② PAGLOCK: ページレベルロック ③ TABLOCK:テーブルロック ④ TABLOCKX: テーブル排他ロック SELECT ステートメントで XLOCK を使用すると、読み取りが防止されるわけではありません。これは、SQL SERVER が読み取りコミット分離レベルで特別な最適化を行っており、行が変更されたかどうかをチェックし、変更されていない場合は XLOCK を無視するためです。これは、Read Committed 分離レベルでは実際に許容されるからです。 上記は私の個人的な経験です。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。間違いや不備な点がありましたら、遠慮なくご指摘ください。 以下もご興味があるかもしれません:
|
<<: Vant アップローダーは、画像をアップロードするためのドラッグ アンド ドロップ機能を実装します (カバーとして設定)
>>: Tomcatはスレッドプールを使用してリモート同時リクエストを処理します。
1. nginxソースディレクトリに新しいrtmpディレクトリを作成し、git clone http...
Mysql は、高性能なデータ ストレージ サービスを提供する主流のオープン ソース リレーショナル...
目次1. はじめに2. 設定手順1. はじめに1. NAT モード (VMnet8) は、仮想マシン...
まず、行の高さが要素の高さと等しい場合にテキストが垂直方向に中央揃えにならない理由を説明します。実際...
序文最近、MySQL に関するメモをいくつか尋ねる人がいたので、ブログ記事を書かなければなりません。...
最近では、特定のフォルダ内の特定のファイルを自動的に検索する必要があり、ファイルパスとファイル名を別...
目次JavaScript 関数呼び出しの典型的な例JS関数の定義と呼び出し方法要約するJavaScr...
MySQL のインストールは、インストール バージョンと解凍バージョンに分かれています。インストール...
以下は、私のプロジェクトでこのプロパティを使用する方法の例です。 (1)激しく透明な浮遊コードをコピ...
目次1. プロジェクト開発において、コンポーネント間の最も一般的な関係は次の 2 つのタイプに分けら...
まず、MySQL とは何かを簡単に紹介します。簡単に言えば、データベースはデータを格納するための倉庫...
面接官から「NodeJS で複数のプロセスを開始する方法を教えてください」と尋ねられることがあります...
この記事の例では、データのページング効果を実現するためのjsオブジェクトの具体的なコードを参考までに...
目次1. 当初の需要2. 解決策3. 運河の導入と設置運河の仕組み建築インストール4. 検証1. 当...
目次1. 問題の背景2. 仮想マシン ネットワーク カードの接続方法は何ですか? 2.1 NAT 2...