トランザクション
トランザクションとは、ACID 特性を満たす一連の操作を指します。トランザクションは、コミットを通じて送信できます。ロールバックを使用してロールバックすることもできます。
ACID
1. アトミック性
トランザクションは分割できないとみなされます トランザクションの最小単位、トランザクションのすべての操作が正常に送信されるか、すべての操作が失敗してロールバックされます。ロールバックは、ロールバック ログを使用して実装できます。ロールバック ログには、トランザクションによって実行された変更操作が記録されます。これらの変更操作は、ロールバック中に逆に実行できます。
2. 一貫性
一貫性とは、トランザクションがデータベースをある一貫性状態から別の一貫性状態に変換する必要があることを意味します。実行前と実行後の両方で一貫した状態。
送金を例に挙げると、ユーザー A とユーザー B の合計金額が 5,000 であると仮定すると、A と B の間で送金がどのように行われたか、または送金が何回完了したかに関係なく、トランザクションの完了後、2 人のユーザーは同じになります。合計は最大 5000 になり、これがトランザクションの一貫性を表します。
3. 分離
分離とは、同じテーブルを操作する場合など、複数のユーザーがデータベースに同時にアクセスする場合であり、データベースはユーザーごとに開かれます。他のトランザクションの操作によって干渉されるため、複数の同時トランザクションを互いに分離する必要があります。
このような効果を実現するには: 2 つの同時トランザクション T1 と T2 の場合、トランザクション T1 の観点から見ると、T2 は T1 が開始する前に終了するか、T1 が終了した後に開始されます。そのため、各トランザクションは他のトランザクションが実行されていることを認識しません。同時実行中。
4. 耐久性
耐久性とは、トランザクションが送信されると、たとえトランザクションのコミット操作が行われなくても、データベース内のデータへの変更が永続的に続くことを意味します。データベース システムに障害が発生した場合でも、データは失われます。
同時実行性の一貫性の問題
1. ダーティ リード
ダーティ リードは、からのデータを参照します。トランザクション処理中に別のコミットされていないトランザクションが読み取られました。
T1 がデータを変更し、T2 がこのデータを読み取ります。 T1 がこの変更を元に戻すと、T2 によって読み取られたデータはダーティ データになります。
2. 反復不可能な読み取り
反復不可能な読み取りとは、データベース内の特定のデータを参照します。トランザクション 複数のクエリが異なるデータ値を返しました。これは、クエリ間の別のトランザクションによって変更およびコミットされたためです。
たとえば、トランザクション T1 は特定のデータを読み取り、トランザクション T2 はすぐにデータを変更し、トランザクションをデータベースに送信します。トランザクション T1 がデータを再度読み取ると、異なる結果が得られ、反復不可能なメッセージが送信されます。読む。
ノンリピータブルリードとダーティリードの違いは、ダーティリードはトランザクションが別のトランザクションのコミットされていないダーティデータを読み取るときであるのに対し、ノンリピータブルリードは前のトランザクションによって送信されたデータが読み取られることです。
#3. ファントム リーディング
ファントム リーディングは、トランザクションが独立して実行されない場合に発生する現象です。たとえば、トランザクション T1 はテーブル内のすべての行のデータ項目を「1」から「2」に変更します。このとき、トランザクション T2 はテーブルにデータ項目の行を挿入しますが、このデータ項目の値は「1」のままです。 " をデータベースに送信しました。トランザクションT1を操作するユーザーが、変更されたばかりのデータを見ると、まだ変更されていない行が1行残っていることに気づきますが、実はこの行はトランザクションT2から追加されたもので、まるで幻覚のようです。これは幻の読み物です。 ファントム読み取りと非反復読み取りはどちらも、別のコミットされたトランザクションを読み取ります (これはダーティ読み取りとは異なります)。違いは、非反復読み取りは同じデータ項目をクエリするのに対し、ファントム読み取りはクエリをクエリするということです。データ全体(データ数など)。 T1 は特定の範囲のデータを読み取り、T2 はこの範囲に新しいデータを挿入し、T1 は再びこの範囲のデータを読み取ります。このときに読み取られた結果は、最初に読み取られた結果とは異なります。#MySQL 分離レベル##1. シリアル化可能:
トランザクションの強制実行シリアルに。これにより、ダーティ リード、非反復読み取り、ファントム リードの発生を回避できます。
2. 反復可能な読み取り:
同じトランザクション内で同じデータを複数回読み取った結果が同じであることを確認しますダーティ リード、反復不可能な読み取りを回避します。が発生します。
3. コミットされた読み取り:
トランザクションは、コミットされたトランザクションによって行われた変更のみを読み取ることができますこれにより、ダーティ リードの発生を回避できます。
4. コミットされていない読み取り:
トランザクション内の変更は、コミットされていない場合でも他のトランザクションに表示されます最低レベル、いかなる状況でも保証はありません。
分離レベルの最も高いレベルは Serializable レベル、最も低いレベルは Read uncommitted レベルであり、レベルが高くなるほど実行効率は低くなります。
Serializable のようなレベルでは、他のスレッドがロックの外でのみ待機できるようにロック テーブル (Java マルチスレッドのロックと同様) を使用するため、通常選択する分離レベルは実際の状況に基づいて選択する必要があります。 . .
MySQL データベースのデフォルトの分離レベルは、反復読み取り (反復読み取り) です。
Oracle データベースでは、シリアル化可能 (シリアル化) レベルと読み取りコミット済み (読み取りコミット済み) の 2 つのレベルのみがサポートされています。デフォルトは読み取りコミット済みレベルです。
推奨学習: MySQL チュートリアル
以上がデータベーストランザクションと分離レベルに関する簡単な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ストアドプロシージャは、パフォーマンスを向上させ、複雑な操作を簡素化するためのMySQLのSQLステートメントを事前に拡大します。 1。パフォーマンスの改善:最初のコンピレーションの後、後続の呼び出しを再コンパイルする必要はありません。 2。セキュリティの改善:許可制御を通じてデータテーブルアクセスを制限します。 3.複雑な操作の簡素化:複数のSQLステートメントを組み合わせて、アプリケーションレイヤーロジックを簡素化します。

MySQLクエリキャッシュの実用的な原則は、選択クエリの結果を保存することであり、同じクエリが再度実行されると、キャッシュされた結果が直接返されます。 1)クエリキャッシュはデータベースの読み取りパフォーマンスを改善し、ハッシュ値を使用してキャッシュされた結果を見つけます。 2)単純な構成、mysql構成ファイルでquery_cache_typeとquery_cache_sizeを設定します。 3)SQL_NO_CACHEキーワードを使用して、特定のクエリのキャッシュを無効にします。 4)高周波更新環境では、クエリキャッシュがパフォーマンスボトルネックを引き起こし、パラメーターの監視と調整を通じて使用するために最適化する必要がある場合があります。

MySQLがさまざまなプロジェクトで広く使用されている理由には、次のものがあります。1。複数のストレージエンジンをサポートする高性能とスケーラビリティ。 2。使いやすく、メンテナンス、シンプルな構成とリッチツール。 3。豊富なエコシステム、多数のコミュニティとサードパーティのツールサポートを魅了します。 4。複数のオペレーティングシステムに適したクロスプラットフォームサポート。

MySQLデータベースをアップグレードする手順には次のものがあります。1。データベースをバックアップします。2。現在のMySQLサービスを停止します。3。MySQLの新しいバージョンをインストールします。アップグレードプロセス中に互換性の問題が必要であり、Perconatoolkitなどの高度なツールをテストと最適化に使用できます。

MySQLバックアップポリシーには、論理バックアップ、物理バックアップ、増分バックアップ、レプリケーションベースのバックアップ、クラウドバックアップが含まれます。 1. Logical BackupはMySqldumpを使用してデータベースの構造とデータをエクスポートします。これは、小さなデータベースとバージョンの移行に適しています。 2.物理バックアップは、データファイルをコピーすることで高速かつ包括的ですが、データベースの一貫性が必要です。 3.インクリメンタルバックアップは、バイナリロギングを使用して変更を記録します。これは、大規模なデータベースに適しています。 4.レプリケーションベースのバックアップは、サーバーからバックアップすることにより、生産システムへの影響を減らします。 5. Amazonrdsなどのクラウドバックアップは自動化ソリューションを提供しますが、コストと制御を考慮する必要があります。ポリシーを選択するときは、データベースサイズ、ダウンタイム許容度、回復時間、および回復ポイントの目標を考慮する必要があります。

mysqlclusteringenhancesdatabaserobustnessnessnessnessnessnistandistributiondistributingdataacrossmultiplenodes.itesthendbenginefordatareplication andfaulttolerance、保証highavailability.setupinvolvesconfiguringmanagement、data、ssqlnodes、carefulmonitoringringandpe

MySQLのデータベーススキーマ設計の最適化は、次の手順を通じてパフォーマンスを改善できます。1。インデックス最適化:一般的なクエリ列にインデックスを作成し、クエリのオーバーヘッドのバランスをとり、更新を挿入します。 2。テーブル構造の最適化:正規化または反通常化によりデータ冗長性を削減し、アクセス効率を改善します。 3。データ型の選択:Varcharの代わりにINTなどの適切なデータ型を使用して、ストレージスペースを削減します。 4。パーティション化とサブテーブル:大量のデータボリュームの場合、パーティション化とサブテーブルを使用してデータを分散させてクエリとメンテナンスの効率を改善します。

tooptimizemysqlperformance、soflowthesesteps:1)properindexingtospeedupqueries、2)useexplaintoanalyzeandoptimize Queryperformance、3)AductServerContingSettingStingsinginginnodb_buffer_pool_sizeandmax_connections、4)


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

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

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

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

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

ホットトピック









