mysqlの分離レベルを変更する方法

藏色散人
リリース: 2021-12-29 14:09:21
オリジナル
5334 人が閲覧しました

mysql 分離レベルを変更する方法: 1. 「skip-external-locking」を検索します; 2. 「transaction-isolation = READ-COMMITTED」の内容を追加します; 3. mysql サービスを再起動します。

mysqlの分離レベルを変更する方法

この記事の動作環境: Windows 7 システム、mysql バージョン 5.5、Dell G3 コンピューター。

mysql の分離レベルを変更するにはどうすればよいですか?

MySQL トランザクション分離レベルと変更方法

MySQL トランザクション分離レベルの変更:

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
ログイン後にコピー

追加 (読み取り提出コンテンツ) の位置の後に:

lc-messages-dir = /usr/share/mysql
skip-external-locking
ログイン後にコピー

:

transaction-isolation = READ-COMMITTED
ログイン後にコピー

mysql サービスを保存して再起動します:

sudo service mysql restart
ログイン後にコピー

SQL 4 分離レベル

Read Uncommitted(コミットされていないコンテンツの読み取り)

この分離レベルでは、すべてのトランザクションが他のコミットされていないトランザクションの実行結果を確認できます。この分離レベルは他のレベルと比べてパフォーマンスがそれほど優れていないため、実際のアプリケーションではほとんど使用されません。コミットされていないデータの読み取りは、ダーティ リードとも呼ばれます。

Read Committed (コミット内容の読み取り)

これは、ほとんどのデータベース システムのデフォルトの分離レベルです (ただし、MySQL のデフォルトではありません)。これは分離の単純な定義を満たしています。つまり、トランザクションはコミットされたトランザクションによって行われた変更のみを確認できます。この分離レベルは、いわゆる非反復読み取りもサポートします。これは、同じトランザクションの他のインスタンスがインスタンスの処理中に新しいコミットを持つ可能性があるため、同じ選択が異なる結果を返す可能性があるためです。

Repeatable Read (Mysql のデフォルトはこの項目: REPEATABLE-READ)

これは MySQL のデフォルトのトランザクション分離レベルであり、同じトランザクションの複数のインスタンスが同時にデータを読み取ることができるようにします。同じデータ行が表示されます。ただし、理論的には、これはファントム リード (ファントム リード) という別のやっかいな問題につながります。簡単に言えば、ファントム読み取りとは、ユーザーが特定の範囲のデータ行を読み取るときに、別のトランザクションがその範囲に新しい行を挿入することを意味します。ユーザーが範囲内のデータ行を再度読み取ると、新しい「ファントム」があることがわかります。わかりました。 InnoDB および Falcon ストレージ エンジンは、マルチバージョン同時実行制御 (MVCC、Multiversion Concurrency Control) メカニズムを通じてこの問題を解決します。

Serializable

これは最高の分離レベルであり、トランザクションが互いに競合しないように強制的に順序付けすることで、ファントム読み取りの問題を解決します。つまり、読み取られた各データ行に共有ロックが追加されます。このレベルでは、多数のタイムアウトやロック競合が発生する可能性があります。

同じデータを読み取るときに発生する可能性がある問題は次のとおりです:

ダーティ リード: トランザクションが 1 つのデータを更新し、別のデータを更新しましたが更新されました。この時点でトランザクションは同じデータを読み取ります。何らかの理由で、前の RollBack 操作が実行され、後のトランザクションで読み取られたデータは正しくありません。

Non-repeatable read: トランザクションの 2 つのクエリ間でデータに一貫性がありません。これは、2 つのクエリ プロセスの間に挿入されたトランザクションによって元のデータが更新されたことが原因である可能性があります。

ファントム読み取り: トランザクションの 2 つのクエリのデータ項目の数に一貫性がありません。たとえば、1 つのトランザクションはデータの複数行をクエリしますが、別のトランザクションはこの時点で新しいデータを挿入します。データの数列、前のトランザクションの後続のクエリでは、以前には存在しなかったデータ列がいくつかあることがわかります。

# !

django2 後

## 推奨学習: 「

mysql ビデオ チュートリアル

以上がmysqlの分離レベルを変更する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!