MySQL の全体的なアーキテクチャに関する簡単な説明
まえがき
また新しい週が始まりました、皆さん、良い月曜日をお過ごしください。
転職や家探しなどが立て続けにあったため、最近は一ヶ月以上更新が止まっていました。すべてが解決したので、安心してコーディングできます。
さて、早速、新しい旅を始めましょう。最近「MySQL Technology Insider - InnoDB Storage Engine」という本を読んでいるので、記録しておきたいと思います。
全体的なアーキテクチャ図
全体を理解するために、まず MySQL のアーキテクチャ図を見てみましょう。 MySQL は主に、ネットワーク接続層、サービス層、ストレージ エンジン層、物理層の 4 つのアーキテクチャ層に分かれています。私たちが通常作成する SQL ステートメントと SQL ステートメントの最適化はすべてサービス層にあり、実際には、SQL ステートメントが期待どおりの結果に従って実行されるように、特定の原則に従っています。
各部の紹介
ネットワーク接続層
は主に接続管理、認可認証、セキュリティなどを担当します。各クライアント接続はサーバー上のスレッドに対応します。接続ごとにスレッドが作成および破棄されるのを避けるために、サーバー上でスレッド プールを維持します。クライアントが MySQL サーバーに接続すると、サーバーはクライアントを認証します。ユーザー名とパスワードを介して認証することも、SSL 証明書を介して認証することもできます。ログイン認証後、サーバーはクライアントに特定のクエリを実行する権限があるかどうかも検証します。この層は MySQL に固有のテクノロジーではありません。
サービス層
この層は、クエリ キャッシュ、パーサー、解析ツリー、プリプロセッサ、クエリ オプティマイザーを含む MySQL の中核です。
- #クエリ キャッシュ
- パーサーとプリプロセッサ
- クエリ オプティマイザー
- 実行計画
注: ストレージ エンジンはテーブル用であり、ライブラリ用ではありません。つまり、同じライブラリ内の異なるテーブルは異なるストレージ エンジンを持つことができます。
create table test1( a INTEGER, b varchar(10) )ENGINE=MyISAM;
create table test2( a INTEGER, b varchar(10) )ENGINE=INNODB;
- ユーザーはまず、Navicat などのクライアントを介してサーバーとの接続を確立します。認証にはユーザー名とパスワードが必要ですが、認証には SSL 証明書を使用することもできます。
- ログインに成功すると、MySQL は、対応する権限に基づいて、ロールに一部のテーブルに対する権限があるかどうかを判断します。
- 関連する権限がある場合、ユーザーがクエリ select ステートメントを送信すると、MySQL は最初にキャッシュにクエリを実行します。このステートメントのキャッシュが既に存在する場合は、キャッシュが直接返されます。そうでない場合は、キャッシュが直接返されます。 , 以下の処理を実行します。更新、新規挿入、または削除の場合、キャッシュは照会されず、次のプロセスが直接実行されます。
MySQL は SQL ステートメントをツリーに解析し、キーワードが正しいかどうか、キーワードの順序が正しいかどうか、テーブル名が正しいかどうか、フィールドが正しいかどうかなどを検証します。 、など。認証に失敗した場合は、直接エラーが返されます。認証に成功した場合は、そのまま次の処理に進みます。
MySQL は、複数の SQL ステートメントが同じ意味を表現する可能性があるため、解析ツリー上でクエリの最適化を実行しますが、消費される時間は大幅に異なる可能性があります。したがって、MySQL はテーブルのストレージ エンジンに最適なステートメントの実行を見つけます。つまり、対応する実行プランを生成します。
上記で生成された実行プランを使用して、ストレージ エンジン層インターフェイスを呼び出します。これは私たちが通常使用する Explain であり、インデックスがインデックス化されているかどうか、消費された時間、その他の情報を確認するために使用できます。
さまざまなストレージ エンジンが、対応する物理ストレージの場所に移動し、対応するデータを検索し、カプセル化して結果を返します。
結果セットが取得され、それが select ステートメントである場合、MySQL は次回同じ操作を実行することによるリソースの消費を避けるために結果をキャッシュに入れ、それを返します。クライアントの結果: この時点で、SQL ステートメントの実行プロセスは終了です。
MySQL 関連の技術記事の詳細については、MySQL チュートリアル 列にアクセスして学習してください。
以上がMySQL の全体的なアーキテクチャに関する簡単な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

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

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

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

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

ホットトピック











Laravelは、Webアプリケーションを簡単に構築するためのPHPフレームワークです。次のような強力な機能を提供します。インストール:Laravel CLIを作曲家にグローバルにインストールし、プロジェクトディレクトリにアプリケーションを作成します。ルーティング:ルート/web.phpのURLとハンドラーの関係を定義します。ビュー:リソース/ビューでビューを作成して、アプリケーションのインターフェイスをレンダリングします。データベース統合:MySQLなどのデータベースとのすぐ外側の統合を提供し、移行を使用してテーブルを作成および変更します。モデルとコントローラー:モデルはデータベースエンティティを表し、コントローラーはHTTP要求を処理します。

MySQLとPHPMyAdminは、強力なデータベース管理ツールです。 1)MySQLは、データベースとテーブルを作成し、DMLおよびSQLクエリを実行するために使用されます。 2)PHPMyAdminは、データベース管理、テーブル構造管理、データ操作、ユーザー許可管理のための直感的なインターフェイスを提供します。

他のプログラミング言語と比較して、MySQLは主にデータの保存と管理に使用されますが、Python、Java、Cなどの他の言語は論理処理とアプリケーション開発に使用されます。 MySQLは、データ管理のニーズに適した高性能、スケーラビリティ、およびクロスプラットフォームサポートで知られていますが、他の言語は、データ分析、エンタープライズアプリケーション、システムプログラミングなどのそれぞれの分野で利点があります。

小さなアプリケーションを開発する際には、軽量データベース操作ライブラリをすばやく統合する必要性という厄介な問題に遭遇しました。複数のライブラリを試した後、私はそれらがあまりにも多くの機能を持っているか、あまり互換性がないかのどちらかであることがわかりました。最終的に、私は問題を完全に解決したYii2に基づいた単純化されたバージョンであるMinii/DBを見つけました。

記事の概要:この記事では、Laravelフレームワークを簡単にインストールする方法について読者をガイドするための詳細なステップバイステップの指示を提供します。 Laravelは、Webアプリケーションの開発プロセスを高速化する強力なPHPフレームワークです。このチュートリアルは、システム要件からデータベースの構成とルーティングの設定までのインストールプロセスをカバーしています。これらの手順に従うことにより、読者はLaravelプロジェクトのための強固な基盤を迅速かつ効率的に築くことができます。

Theliaを使用してeコマースWebサイトを開発するとき、私はトリッキーな問題に遭遇しました:MySQLモードが適切に設定されていないため、いくつかの機能が適切に機能しません。いくつかの調査の後、TheliamysQlModescheckerというモジュールを見つけました。これは、Theliaが必要とするMySQLパターンを自動的に修正できるため、問題を完全に解決できます。

MySQLは、テーブル構造とSQLクエリを介して構造化されたデータを効率的に管理し、外部キーを介してテーブル間関係を実装します。 1.テーブルを作成するときにデータ形式と入力を定義します。 2。外部キーを使用して、テーブル間の関係を確立します。 3。インデックス作成とクエリの最適化により、パフォーマンスを改善します。 4.データベースを定期的にバックアップおよび監視して、データのセキュリティとパフォーマンスの最適化を確保します。

MySQLは、Web開発で広く使用されているオープンソースリレーショナルデータベース管理システムです。その重要な機能には、次のものが含まれます。1。さまざまなシナリオに適したInnodbやMyisamなどの複数のストレージエンジンをサポートします。 2。ロードバランスとデータバックアップを容易にするために、マスタースレーブレプリケーション機能を提供します。 3.クエリの最適化とインデックスの使用により、クエリ効率を改善します。
