トランザクション分離レベルは何ですか?MySQLのデフォルトの分離レベルはありますか?

SQL標準定義分離の4つのレベル:

READ UNCOMMITTED-(非コミット読み取り)

汚れの原因となり、読み取りデータの変更が提出されていない可能最低の分離レベルは、読み取り、繰り返し不可の読み取りやファントム読み取り。

READ-COMMITTED(コミット読み取り)

ダーティリード防ぐことができ、同時トランザクションが既に提出されたデータを読み取ることができますが、ファントム読み取りまたは非反復可能読み取りがまだ発生する可能性があります。

REPEATABLE-READ(反復可能読み取り)

繰り返し同じフィールドの結果を読み取ったデータは、その事務自身変更されていない限り、あなたは汚れを読み込み、非反復可能読み取りが、ファントムはまだ起こり読み込みを防止することができ、同じです。

SERIALIZABLE(直列化可能)

分離の最高レベルの、完全に遵守ACID分離レベル。すべてのトランザクションを順に一つずつ実行、それは言うことである、そのような問題との間の干渉を生成することは不可能であり、このレベルの防止のダーティ・リード、非反復読み取りとファントム読み取り。

デフォルトの分離レベルのMySQL InnoDBストレージエンジンでサポートされている(再読み込みすることができる)REPEATABLE-READです。我々はできるSELECT @@tx_isolation;コマンドを表示します

差が他のデータベースとは対照的に、SQL標準のInnoDBストレージエンジンREPEATABLE-READ(再読み込みすることができる)より低いトランザクション分離レベルの使用は、このように生産ファントムリードを回避する、ネクストキーロックロックアルゴリズムであるということである:ことに留意すべきです(SQL Serverなど)システムが異なっています。だから、SQL標準SERIALIZABLE(直列化)分離レベルを達成するために、すなわち、すでに完全に保証トランザクション分離要件(再読み込みすることができます)、デフォルトのストレージエンジンInnoDBの分離レベルによってREPEATABLE-READでサポート

低分離レベルなので、あまりトランザクションがロックを要求するので、ほとんどのは、データベース・システムの分離レベルはREAD-COMMITTED(読み提出)ですが、あなたは(可能なInnoDBストレージエンジンはデフォルトのREPEATABLE-READで使用されていることを知っています再読み込み)任意のパフォーマンスの低下を持っていません。

分散トランザクションの場合にInnoDBストレージエンジンは、一般に、SERIALIZABLE(直列化)分離レベルを使用します。

おすすめ

転載: www.cnblogs.com/kristse/p/Transactionisolationlevel.html