ホームページ  >  記事  >  バックエンド開発  >  MySQLアーキテクチャに基づく分析_PHPチュートリアル

MySQLアーキテクチャに基づく分析_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:10:31660ブラウズ

MySql を理解するには、MySQL が SQL インターフェース、パーサー、オプティマイザー、キャッシュ、ストレージ エンジンで構成されているということを念頭に置く必要があります

1 コネクタとは、さまざまな言語での SQL との対話を指します

2 管理サービスとユーティリティ: システム管理および制御ツール

3 接続プール: 接続プール。

ユーザー接続のバッファリング、スレッド処理、キャッシュを必要とするその他の要件を管理します

4 SQL インターフェース: SQL インターフェース。

ユーザーの SQL コマンドを受け入れ、ユーザーがクエリする必要がある結果を返します。たとえば、select from は SQL インターフェースを呼び出します

5 パーサー: パーサー。

SQL コマンドがパーサーに渡されると、パーサーによって検証され、解析されます。パーサーは Lex と YACC によって実装されており、非常に長いスクリプトです。

主な機能:

a . SQL ステートメントをデータ構造に分解し、この構造を後続のステップに渡します。その後の SQL ステートメントの配信と処理は、この構造に基づいています。

b. 分解中にエラーが発生した場合は、SQL ステートメントが不当であることを意味します

6 オプティマイザー: クエリ オプティマイザー。

SQL ステートメントは、クエリを実行する前にクエリ オプティマイザーを使用してクエリを最適化します。彼はクエリに「選択-投影-結合」戦略を使用します。

例で理解できます: select uid,name from user where 性別 = 1;

この選択クエリは、最初にすべてのテーブルをクエリしてから性別でフィルタリングするのではなく、まず where ステートメントに基づいて選択します

この選択クエリは、すべての属性を取り出してからフィルタリングするのではなく、最初に uid と名前に基づいて属性投影を実行します

これら 2 つのクエリ条件を接続して、最終的なクエリ結果を生成します

7 キャッシュとバッファ: クエリキャッシュ。

クエリ キャッシュにヒットしたクエリ結果がある場合、クエリ ステートメントはクエリ キャッシュからデータを直接フェッチできます。

このキャッシュ メカニズムは、一連の小さなキャッシュで構成されています。たとえば、テーブル キャッシュ、レコード キャッシュ、キー キャッシュ、権限キャッシュなどです。

8 エンジン: ストレージ エンジン。

ストレージ エンジンは、ファイルを処理する MySql の特定のサブシステムです。これは Mysql の最もユニークな場所でもあります。

Mysql のストレージ エンジンはプラグインです。 MySql ABが提供するファイルアクセス層の抽象インターフェースに基づいてファイルアクセス機構をカスタマイズします(このアクセス機構をストレージエンジンと呼びます)

現在、多くのストレージ エンジンがあり、それぞれのストレージ エンジンには異なる利点があります。最も一般的に使用されているのは、MyISAM、InnoDB、BDB です。

デフォルトでは、MySql は、高速なクエリ速度、優れたインデックス最適化およびデータ圧縮テクノロジーを備えた MyISAM エンジンを使用します。ただし、トランザクションはサポートされていません。

InnoDB はトランザクションをサポートし、行レベルのロックを提供します。これも広く使用されています。

Mysql は独自のストレージ エンジンのカスタマイズもサポートしており、ライブラリ内の異なるテーブルでも、これらはすべて許可されています。


http://www.bkjia.com/PHPjc/327059.html

tru​​ehttp://www.bkjia.com/PHPjc/327059.html技術記事 MySql を理解するには、そのアーキテクチャ図を念頭に置く必要があります。MySQL は、SQL インターフェイス、パーサー、オプティマイザー、キャッシュ、およびストレージ エンジンで構成されています。1 コネクタは、さまざまな言語での SQL との対話を指します。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。