ホームページ  >  記事  >  データベース  >  一般的なデータベース分類方法

一般的なデータベース分類方法

angryTom
angryTomオリジナル
2019-10-30 14:08:293423ブラウズ

一般的なデータベース分類方法

一般的なデータベース分類方法

インターネットの継続的な発展に伴い、企業が使用できる方法も増加しています。今日は、一般的なデータ分類方法とは何かを見ていきます。

1、コミットされていない読み取り。

は、あるトランザクションが別のトランザクションがまだ送信していないコンテンツを読み取ることを指します。このような状況は避けなければなりません。他のトランザクションからのコミットされていないデータはいつでもロールバックされる可能性があるため、プログラムはいかなる場合でもトランザクションからコミットされていないデータを読み取ることを許可されるべきではありません。別のトランザクションからコミットされていないデータが読み取られる場合、この状況はダーティ リードと呼ばれます。ダーティ リードの問題を解決するには、データベースのトランザクション分離レベルを上げ、トランザクション分離レベルを読み取りコミットに設定します。

2、読み取りがコミットされました。

この分離レベルにより、ダーティ リーディングの問題を解決できます。

この分離レベルでは、コミットされていない 2 つのトランザクション間の並列実行は許可されませんが、1 つのトランザクションの実行中に別のトランザクションを実行および送信することはできます。このように、トランザクションの前後で 2 回選択されたデータの特定の行の値が異なる可能性がある状況が発生します。値が変更される理由は、分散トランザクション 2 がデータ行に対して更新操作を実行したためです。同じトランザクション内で、異なる値が 2 回選択される問題は、Non-Repeatable Read 問題と呼ばれます。非反復読み取りの問題を解決するには、データの分離レベルを反復読み取りに設定する必要があります。

3、繰り返し読むことができます。反復可能な読み取り。

この分離レベルでは、反復不可能な読み取りの問題を解決できます。

この分離レベルでは、トランザクションが特定の行のデータを使用している間、他のトランザクションはその行のデータを操作できません。反復可能な読み取りでは、データベース行にロックを追加する必要があります。この分離レベルでは、他のトランザクションは依然としてテーブル内のデータの挿入と削除を許可されているため、トランザクション 1 の実行中に、特定の条件を満たす行が 2 回選択された場合、これら 2 つの行の間で 2 回目の選択が行われた後、 , 別のトランザクションが実行される. 特定の行が挿入または削除されると、同じ条件を満たす 2 つの選択の結果が異なります. 1 つの選択は幻想であるように見えます. したがって、この問題も解決されました. ファントム リーダーになる。ファントム読み取りの問題を解決するには、データベースの分離レベルをシリアル化に設定する必要があります。

4、連載。

シリアル化により、ファントム リーディングの問題を解決できます。

トランザクションの実行が完全にシリアル化されている必要があります。したがって、同時実行の効率が失われます。

Mysql のデフォルトの分離レベルは反復読み取りです。

つまり、データのトランザクション分離レベルは、低から高まで、Read Uncommitted、Read Commited、Repeatable Read、serialized の 4 種類に分類されます。データベース トランザクション分離レベルに関連する問題は 3 つあります。それは、ダーティ リード、非反復読み取り、ファントム リードです。ダーティ リードの問題はリード コミットによって解決する必要がありますが、リード コミットによって反復不可能な読み取りの問題が発生します。ノンリピータブルリードの問題はリピータブルリードで解決する必要がありますが、リピータブルリードではファントムリードの問題が発生します。ファントム読み取りの問題はシリアル化で解決する必要があります。

推奨「mysql ビデオ チュートリアル

以上が一般的なデータベース分類方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。