1. 分離レベルの概念
なぜ分離レベルを考慮する必要があるのでしょうか?
トランザクションは 同時に実行する必要があるため、 同時に実行すると、ダーティ読み取り、反復不能読み取り、仮想読み取りなどの問題が発生する可能性があるため、一部は許可されますが、一部は許可されます。発生するか発生しないかに応じて、このさまざまな程度の同時実行制御に対してさまざまな分離レベルが存在します。
MySQL でサポートされている 4 つの分離レベルは次のとおりです:
TRANSACTION_READ_UNCOMMITTED: Uncommitted read。これは、トランザクション A がコミット前にトランザクション B の変更を確認できることを意味します。このようにして、ダーティ データが読み取られ、非反復読み取りとファントム読み取りが許可されます。
TRANSACTION_READ_COMMITTED: コミットされた読み取り (Oracle のデフォルト)。コミットされていないデータの読み取りが許可されていないことを示します (ダーティ リードを防ぐため)。反復不可能な読み取りとファントム読み取りは、このレベルでも発生することが許可されます。
TRANSACTION_REPEATABLE_READ: Repeatable Read (MySQL のデフォルト)。他のトランザクションが変更された場合でも、トランザクションが失敗することなく同じデータを再度読み取ることができることが保証されていることを示します。このデータを変更しても、前後の 2 つのクエリのデータに違いは見られません。しかし、ファントム・リーディングは依然として発生します。
TRANSACTION_SERIALIZABLE: Serialization は、ダーティ リード、非反復読み取り、ファントム リードを防止する最高のトランザクション分離レベルです。シリアル実行はシングルスレッド操作と同等であり、最低の同時実行機能です。
注:
トランザクション分離レベルが高くなるほど、競合を回避するために必要なパフォーマンスが低下します。多ければ多いほど効率は低くなります。 「反復読み取り」レベルでは、実際には仮想読み取りの問題の一部を解決できますが、更新の更新によって引き起こされる仮想読み取りの問題を防ぐことはできません。仮想読み取りの発生を禁止するには、シリアル化分離レベルを設定する必要があります。
MySQL クライアントはデフォルトで反復読み取りレベルで動作します:
に戻ります。
## コミットされた読み取り分離レベルが設定されているため、トランザクション B ではダーティ 読み取りは発生しませんでした。これは、さまざまなロック機構とトランザクション同時実行の MVCC バージョン管理によって実装されます。
読み取りコミット分離レベルでは、送信されたデータをクエリすると反復不可能な読み取りが発生する可能性がありますが、これは許可されています。反復不可能な読み取りが発生したため、ファントム読み取りが確実に発生する可能性があります。
同じクエリが前に存在する場合以降 2回実行した場合、データ量が異なるとファントムリードが発生します。ファントム読み取りの問題を完全に解決するには、反復読み取り分離レベルでは達成できません。分離レベルをシリアル化
5 に上げる必要があります。TRANSACTION_SERIALIZABLE 分離レベルをテストします
現象から判断すると、シリアル化することでファントムリードは解決できます。別のテーブルにデータを挿入する場合、同じ条件でのクエリはブロックされます。トランザクション B はデータを読み取っているため、これはトランザクション A が書き込むときデータが再びブロックされるとブロックされます (読み取り/書き込みロックが実装されており、読み取りと読み取りは許可されますが、読み取りと書き込み、または書き込みと書き込みは許可されません)
MySQL サーバーは、自身のトランザクション スレッドをブロックさせません。スレッドが占有しているロックは解放できず、トランザクションを実行している他のスレッドはロックを取得できず、永久にブロックされます。トランザクションを実行しているスレッドの待機時間が長すぎると、タイムアウト メカニズムがトリガーされ、スレッドがロックを解放してエラーを返します
以上がMySQL トランザクションの分離レベルは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

酸性属性には、原子性、一貫性、分離、耐久性が含まれ、データベース設計の基礎です。 1.原子性は、トランザクションが完全に成功するか、完全に失敗することを保証します。 2.一貫性により、データベースがトランザクションの前後に一貫性を保証します。 3.分離により、トランザクションが互いに干渉しないようにします。 4.永続性により、トランザクションの提出後にデータが永久に保存されることが保証されます。

MySQLは、データベース管理システム(DBMS)であるだけでなく、プログラミング言語にも密接に関連しています。 1)DBMSとして、MySQLはデータを保存、整理、取得するために使用され、インデックスを最適化するとクエリのパフォーマンスが向上する可能性があります。 2)SQLとPythonに埋め込まれたプログラミング言語とSQLalchemyなどのORMツールを使用すると、操作を簡素化できます。 3)パフォーマンスの最適化には、インデックス、クエリ、キャッシュ、ライブラリ、テーブル分割、およびトランザクション管理が含まれます。

MySQLはSQLコマンドを使用してデータを管理します。 1.基本コマンドには、select、挿入、更新、削除が含まれます。 2。高度な使用には、参加、サブクエリ、および集計関数が含まれます。 3.一般的なエラーには、構文、ロジック、パフォーマンスの問題が含まれます。 4。最適化のヒントには、インデックスの使用、Select*の回避、制限の使用が含まれます。

MySQLは、データの保存と管理に適した効率的なリレーショナルデータベース管理システムです。その利点には、高性能クエリ、柔軟なトランザクション処理、豊富なデータ型が含まれます。実際のアプリケーションでは、MySQLはeコマースプラットフォーム、ソーシャルネットワーク、コンテンツ管理システムでよく使用されますが、パフォーマンスの最適化、データセキュリティ、スケーラビリティに注意を払う必要があります。

SQLとMySQLの関係は、標準言語と特定の実装との関係です。 1.SQLは、リレーショナルデータベースの管理と操作に使用される標準言語であり、データの追加、削除、変更、クエリを可能にします。 2.MYSQLは、SQLを運用言語として使用し、効率的なデータストレージと管理を提供する特定のデータベース管理システムです。

INNODBは、レドログと非論的なものを使用して、データの一貫性と信頼性を確保しています。 1.レドログは、クラッシュの回復とトランザクションの持続性を確保するために、データページの変更を記録します。 2.Undologsは、元のデータ値を記録し、トランザクションロールバックとMVCCをサポートします。

説明コマンドのキーメトリックには、タイプ、キー、行、および追加が含まれます。 1)タイプは、クエリのアクセスタイプを反映しています。値が高いほど、constなどの効率が高くなります。 2)キーは使用されているインデックスを表示し、nullはインデックスがないことを示します。 3)行はスキャンされた行の数を推定し、クエリのパフォーマンスに影響します。 4)追加の情報を最適化する必要があるというFilesortプロンプトを使用するなど、追加情報を提供します。

Temporaryを使用すると、MySQLクエリに一時テーブルを作成する必要があることが示されています。これは、異なる列、またはインデックスされていない列を使用して順番に一般的に見られます。インデックスの発生を回避し、クエリを書き直し、クエリのパフォーマンスを改善できます。具体的には、expliect出力に使用を使用する場合、MySQLがクエリを処理するために一時テーブルを作成する必要があることを意味します。これは通常、次の場合に発生します。1)個別またはグループビーを使用する場合の重複排除またはグループ化。 2)Orderbyに非インデックス列が含まれているときに並べ替えます。 3)複雑なサブクエリを使用するか、操作に参加します。最適化方法には以下が含まれます。1)OrderbyとGroupB


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

WebStorm Mac版
便利なJavaScript開発ツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター
