MySQL データベースのトランザクション分離と MVCC の詳細な紹介 (画像とテキスト)
この記事は、MySQL データベースのトランザクション分離と MVCC について詳しく (写真とテキストで) 紹介します。一定の参考価値があります。必要な友人は参考にしてください。お役に立てれば幸いです。
前書き: トランザクションとは、データベースにアクセスするための一連の操作です。データベース アプリケーション システムは、トランザクション セットを通じてデータベースへのアクセスを完了します。
1. トランザクションとは何ですか?
トランザクション ISO/IEC によって確立された ACID 原則に準拠する必要があります。 ACID は、アトミック性、一貫性、分離性、耐久性の略語です。これら 4 つの状態の意味は次のとおりです:
1. アトミック性
アトミック プロパティは、トランザクションに含まれるすべての操作が成功または失敗し、ロールバックされることを意味します。これは、前 2 回のブログで紹介したトランザクションの機能と同じ概念であるため、トランザクションの操作が成功した場合はデータベースに完全に適用される必要があり、操作が失敗した場合はデータベースに影響を与えることはできません。 。
2. 整合性
整合性とは、トランザクションがデータベースをある整合性状態から別の整合性状態に変換する必要があることを意味します
3. 分離性
トランザクションが正しい場合 コミットする前に、トランザクションによってデータが変更されます他のトランザクションに提供することは許可されていません。つまり、トランザクションが正しくコミットされるまでは、その可能性のある結果が他のトランザクションに表示されるべきではありません。がコミットされると、データベース内のデータへの変更は永続的になり、データベース システムに障害が発生した場合でも、トランザクションをコミットする操作は失われません。
2. トランザクションの役割
複数のスレッドがトランザクションを開始してデータベース内のデータを操作する場合、データベース システムは、各スレッドが取得したデータの正確性を確保するために分離操作を実行できなければなりません。 .
3. 発生した同時実行性の問題
##1. 更新の喪失の最初のタイプ: トランザクション A が取り消されると、送信されたトランザクション B の更新データが上書きされます。2 2 番目のタイプのクラス損失更新: トランザクション A は、トランザクション B によって送信されたデータを上書きし、トランザクション B の操作が失われます。
3. ダーティ リード: トランザクション A は、トランザクション B のコミットされていないデータを読み取ります。 Non-repeatable Read: トランザクション A によって複数回読み取られた値は、トランザクション B によって変更およびコミットされたため異なります。5. ファントム読み取り: トランザクション A の 2 回の読み取りの間に、トランザクション B がデータを挿入しました。
4. 上記の問題を解決するにはどうすればよいですか?
上記の問題を解決するために、開発者は MySQL データベースに対して次の 4 つのトランザクション分離レベルを設計しました:
3.反復読み取り: 反復読み取り。同じトランザクション内のクエリは、トランザクションの開始時 (InnoDB のデフォルト レベル) で一貫性があります。 SQL 標準では、この分離レベルにより反復不可能な読み取りが排除されますが、ファントム読み取りは依然として存在しますが、innoDB はファントム読み取りを解決します。テーブル レベルの共有ロックであり、読み取りと書き込みが相互にブロックされます。
ファントム読み取りなし | コミットされていない読み取り(コミットされていない読み取り) | ||
---|---|---|---|
可能 | コミット済み読み取り | 不可能 | |
可能 | Repeated Read | 不可能 | |
可能 | Serializable (シリアル読み取り) | 不可能 | |
不可能 | # |
以上がMySQL データベースのトランザクション分離と MVCC の詳細な紹介 (画像とテキスト)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









MySQLは、インストールが簡単で、強力で管理しやすいため、初心者に適しています。 1.さまざまなオペレーティングシステムに適した、単純なインストールと構成。 2。データベースとテーブルの作成、挿入、クエリ、更新、削除などの基本操作をサポートします。 3.参加オペレーションやサブクエリなどの高度な機能を提供します。 4.インデックス、クエリの最適化、テーブルパーティション化により、パフォーマンスを改善できます。 5。データのセキュリティと一貫性を確保するために、バックアップ、リカバリ、セキュリティ対策をサポートします。

NAVICAT自体はデータベースパスワードを保存せず、暗号化されたパスワードのみを取得できます。解決策:1。パスワードマネージャーを確認します。 2。NAVICATの「パスワードを記憶する」機能を確認します。 3.データベースパスワードをリセットします。 4.データベース管理者に連絡してください。

NAVICATプレミアムを使用してデータベースを作成します。データベースサーバーに接続し、接続パラメーターを入力します。サーバーを右クリックして、[データベースの作成]を選択します。新しいデータベースの名前と指定された文字セットと照合を入力します。新しいデータベースに接続し、オブジェクトブラウザにテーブルを作成します。テーブルを右クリックして、データを挿入してデータを挿入します。

Passwordが暗号化された形式で保存されているため、MariadbのNavicatはデータベースパスワードを直接表示できません。データベースのセキュリティを確保するには、パスワードをリセットするには3つの方法があります。NAVICATを介してパスワードをリセットし、複雑なパスワードを設定します。構成ファイルを表示します(推奨されていない、高リスク)。システムコマンドラインツールを使用します(推奨されません。コマンドラインツールに習熟する必要があります)。

MySQLは、オープンソースのリレーショナルデータベース管理システムです。 1)データベースとテーブルの作成:createdatabaseおよびcreateTableコマンドを使用します。 2)基本操作:挿入、更新、削除、選択。 3)高度な操作:参加、サブクエリ、トランザクション処理。 4)デバッグスキル:構文、データ型、およびアクセス許可を確認します。 5)最適化の提案:インデックスを使用し、選択*を避け、トランザクションを使用します。

NAVICATでSQLを実行する手順:データベースに接続します。 SQLエディターウィンドウを作成します。 SQLクエリまたはスクリプトを書きます。 [実行]ボタンをクリックして、クエリまたはスクリプトを実行します。結果を表示します(クエリが実行された場合)。

手順に従って、NAVICATで新しいMySQL接続を作成できます。アプリケーションを開き、新しい接続(CTRL N)を選択します。接続タイプとして「mysql」を選択します。ホスト名/IPアドレス、ポート、ユーザー名、およびパスワードを入力します。 (オプション)Advanced Optionsを構成します。接続を保存して、接続名を入力します。

NAVICATがデータベースとそのソリューションに接続できない一般的な理由:1。サーバーの実行ステータスを確認します。 2。接続情報を確認します。 3.ファイアウォール設定を調整します。 4.リモートアクセスを構成します。 5.ネットワークの問題のトラブルシューティング。 6.許可を確認します。 7.バージョンの互換性を確保します。 8。他の可能性のトラブルシューティング。
