目次
上級章の最初の内容であるストレージ エンジンの学習を始めましょう
学習ポイントは4つに分かれています。
- MySQL アーキテクチャ
- ストレージ エンジンの概要
- ストレージエンジンの機能
- ストレージ エンジンの選択
MySQL アーキテクチャ
接続層
最上位層は、ローカル
ソケット通信や、クライアント
/サーバー ツールに
基づくほとんどの TCP/IP に似た通信を含む、いくつかのクライアント サービスと接続サービスです。
主に、いくつかの接続処理、認可認証、および関連するセキュリティ ソリューションを完了します。スレッド プールの概念がこの層に導入され、認証を通じて安全にアクセスするクライアントにスレッドを提供します。SSL ベースの安全なリンクもこの層に実装できます。また、サーバーは、安全にアクセスする各クライアントに対してサーバーが持つ操作権限を検証します。
サービス層
第 2 層のアーキテクチャは主に
、SQL インターフェイスなどのほとんどの
コア サービス機能を完了し
、キャッシュされたクエリ、SQL 分析と最適化、およびいくつかの組み込み関数の実行を完了します。プロシージャ、関数など、すべてのクロスストレージ エンジン機能もこの層に実装されます。この層では、サーバーはクエリを解析して対応する内部解析ツリーを作成し、テーブル クエリの順序の決定、インデックスを使用するかどうかなどの対応する最適化を完了し、最終的に対応する実行操作を生成します。select ステートメントの場合、サーバーは内部キャッシュにもクエリを実行します。キャッシュ領域が十分に大きければ、大量の読み取り操作を解決する環境でシステムのパフォーマンスを大幅に向上させることができます。
エンジン層
ストレージ エンジン層。ストレージ エンジンは実際に
MySQL でのデータの保存と取得を担当し
、サーバーは
APIを介して
ストレージ エンジンと通信します。ストレージ エンジンが異なれば機能も異なるため、
ニーズに応じて適切なストレージ エンジンを選択できます
。
データベース内のインデックスはストレージ エンジン層で実装されます
。
ストレージ層
データ ストレージ層は主にデータ (redolog、undolog、データ、インデックス、バイナリ ログ、エラー ログ、クエリなど) を保存します。
ログ、スロー クエリ ログなど)はファイル システムに保存され、ストレージ エンジンとの対話を完了します。
他のデータベースと比較すると、
MySQL
は少し異なり、そのアーキテクチャはさまざまなシナリオに適用でき、適切に動作します。主にストレージ エンジンに反映される
プラグイン ストレージ エンジン アーキテクチャは、
クエリ処理を他のシステム タスクやデータの保存と抽出から分離します。
このアーキテクチャにより、ビジネス ニーズと実際のニーズに基づいて適切なストレージ エンジンを選択できます。
ストレージ エンジンの概要
エンジンとは機械の核となる部品のことです。
たとえば、艦載機、ヘリコプター、ロケットには、最も核となるコンポーネントである独自のエンジンが搭載されています。エンジンを選択するときは、ヘリコプターでは艦載機のエンジンを選択できないのと同じように、適切なシナリオで適切な貯蔵エンジンを選択する必要があります。
ストレージ エンジンも同様で、MySQL データベースの中核であり、適切なシナリオで適切なストレージ エンジンを選択する必要があります。次に、ストレージ エンジンを紹介します。
たとえば、艦載機、ヘリコプター、ロケットには、最も核となるコンポーネントである独自のエンジンが搭載されています。エンジンを選択するときは、ヘリコプターでは艦載機のエンジンを選択できないのと同じように、適切なシナリオで適切な貯蔵エンジンを選択する必要があります。
ストレージ エンジンも同様で、MySQL データベースの中核であり、適切なシナリオで適切なストレージ エンジンを選択する必要があります。次に、ストレージ エンジンを紹介します。
コンセプト
ストレージ エンジンは、データの保存、インデックスの作成、データの更新/クエリなどのテクノロジの実装です。
ストレージ エンジンはライブラリ ベースではなくテーブル ベースであるため、ストレージ エンジンはテーブル タイプとも呼ばれます。テーブルの作成時に選択するストレージ エンジンを指定できます。指定しない場合は、デフォルトのストレージ エンジンが自動的に選択されます。
声明
1. テーブルの作成時にストレージ エンジンを指定します
CREATE TABLE 表名(
字段1 字段1类型 [ COMMENT 字段1注释 ] ,
......
字段n 字段n类型 [COMMENT 字段n注释 ]
) ENGINE = INNODB [ COMMENT 表注释 ] ;
2. 現在のデータベースでサポートされているストレージ エンジンをクエリします。
show engines;
3. クエリテーブル作成ステートメント---デフォルトのストレージ エンジン: InnoDB
show create table 表名;
テーブルを作成するときに、ストレージの流行を指定しなくても、データベースはデフォルトのストレージ エンジンを自動的に選択します。
デモ
1. テーブル
my_myisamを作成し
、
MyISAM
ストレージ エンジンを指定します
create table my_myisam(
id int,
name varchar(10)
) engine = MyISAM ;
2.テーブルmy_memory を作成し、メモリストレージ エンジンを指定します。
create table my_memory(
id int,
name varchar(10)
) engine = Memory ;
終わり
学習内容: ダークホース プログラマー - MySQL データベース コース