データベースの独立性レベルと同時操作による問題
1501 ワード
同時操作で発生する可能性のある問題:1.汚いデータを読んで、汚いデータは別の事務が提出していないデータを読んで、例えば、Aは1つの振り替え事務の中で、100元をBに振り替えて、この時Bはこの振り替えのデータを読んで、それからいくつかの操作(Aに出荷して、あるいはその他の)をして、しかしこの時Aの事務は提出していないで、もしAが事務をロールバックしたら、GGになりました.これが汚い読みです.
2.再読み込み不可で、同じデータを1つのトランザクションで2回読み込んだ場合、読み込まれた内容が一致しない(主に別のトランザクションが変更されたデータが読み込まれた)ため、この適用シーンは多くありません.
3.幻読み(虚読み)は、1つのトランザクションで2回の読み取り操作を行い、読み出された内容が一致せず(主に別のトランザクションの新規レコードが読み出された)、適用シーンが多くない.
データベース独立性レベル:1.シリアル化(同じデータの読み書きはトランザクションによってロックされており、このトランザクションが終了するたびに次のトランザクションの読み書きができるため、データベースのデッドロックを引き起こす可能性があり、速度が遅く、推奨されない).コミットされたデータ(別のトランザクションによってコミットされたデータを読む)3.繰り返し可能(1つのトランザクションで2回読み込まれたデータが一致)
mysqlクエリートランザクションの独立性レベル
mysqlのプロファイルで構成することもできます
jdbcでのデータベース・独立性レベルの表示と変更
2.再読み込み不可で、同じデータを1つのトランザクションで2回読み込んだ場合、読み込まれた内容が一致しない(主に別のトランザクションが変更されたデータが読み込まれた)ため、この適用シーンは多くありません.
3.幻読み(虚読み)は、1つのトランザクションで2回の読み取り操作を行い、読み出された内容が一致せず(主に別のトランザクションの新規レコードが読み出された)、適用シーンが多くない.
データベース独立性レベル:1.シリアル化(同じデータの読み書きはトランザクションによってロックされており、このトランザクションが終了するたびに次のトランザクションの読み書きができるため、データベースのデッドロックを引き起こす可能性があり、速度が遅く、推奨されない).コミットされたデータ(別のトランザクションによってコミットされたデータを読む)3.繰り返し可能(1つのトランザクションで2回読み込まれたデータが一致)
mysqlクエリートランザクションの独立性レベル
select @@tx_isolation
mysqlのプロファイルで構成することもできます
#mysql , , ( )
transaction_isolation = READ-COMMITTED
# , , ( , , )
#transaction_isolation = Repeatable-Read
jdbcでのデータベース・独立性レベルの表示と変更
// System.out.println(conn.getTransactionIsolation());;
// conn.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED);