インタビュー方言、トランザクション分離レベル
原子性、一貫性、分離性、耐久性との取引。
MySQLデータベースのトランザクション分離レベルの命令を使用します:
MySQLのサポートサービスは、一般的にInnoDBエンジンを使用しています
MySQLのデフォルトのトランザクション分離レベル反復可能読み取り(REPEATABLE-READ): 'tx_isolation' 表示のような使用ショーの変数
注:オープン、コミットされていない状態で、次の2番目のトランザクション、。
最初:非コミット読み取り(コミットされていない読み取り)
最初のトランザクションは、それがコミットされていない読み込まれ、更新されたデータを提出し、2番目のトランザクションが読み取ることができませんでした。
更新されたデータを提出しなかった最初のトランザクションがロールバックされ、2番目のトランザクションのロールバックは、データを読み、それはダーティリードです。
だから、コミットされていない読んで、ダーティリードを表示されることがあります。
第二:リードコミッティは、(コミット読み取り)、また、反復不能読み取りとして知られています
更新されたデータを提出しなかった最初のトランザクションは、2番目のトランザクションが読み取ることはできません。
最初のトランザクションは、2番目のトランザクションが読み取ることができ、更新されたデータを提出し、それがコミット読み込まれます。
最初のトランザクションは、2番目のトランザクションが12歳暁明を読んで、12歳の更新暁明の学生を犯しました。
第三トランザクションが14歳の暁明の学生を更新するために、再度コミット、2番目のトランザクションは、14歳の暁明を再読み込み、これは(同じトランザクションの一貫性のないデータの結果を読み込む)反復可能読み取りではありません。
読書が提出されましたので、反復不能読み取り、非反復(一貫性のないデータ結果が同じトランザクション内で読み)も引き起こす可能性があります読み込みファントム読み取り(一貫性のないデータ結果を読み取るために、同じトランザクション内で)が存在します。
第三:反復可能読み取り(反復可能読み取り)、MySQLのデフォルトのトランザクション分離レベル
最初のトランザクションは、2番目のトランザクションが12歳暁明を読んで、12歳の更新暁明の学生を犯しました。
第三トランザクションが14歳の暁明の学生を更新するために、再度コミット、2番目のトランザクションは、12歳の暁明を再読み込み、これは反復可能読み取りです(トランザクション結果内一貫性のあるデータを読んで)。
第四トランザクションはクラスメートがデータレコードをポニー挿入し、2番目のトランザクションはわずか12歳の暁明データについて読ん読み取りコミット、ポニーの学生は、これはファントム読み取りで、データを読み込みます。
そのため、反復可能読み取りは、それがファントム読み取り(データは同じトランザクションの一貫性のない中で結果を読み取ります)が表示されます。
第四:シリアライズ(直列化可能)
ダーティリード、またとないなし、ファントム読み取り問題を解決するための分離最高レベル。
同じトランザクション内では、何度も読みどんなには、結果セットは常に同じです。