Mysql アーキテクチャとストレージ エンジン
1.1 データベースとインスタンスを定義します
データベース: frm、MYD、MYI、ibd で終わるファイル、NDB エンジンを使用する場合、データベース ファイルはメモリに配置されます
例: バックグラウンド スレッドと共有メモリで構成されます。共有メモリは共有できる状態でバックグラウンドで実行でき、データベースを実際に操作するのはデータベース インスタンスです。
インスタンスとデータベースの関係は 1 対 1 に対応します。
MySql は、シングルプロセスおよびマルチスレッドのアーキテクチャを備えたデータベースです。インスタンスはシステム内のプロセスとして動作します。
Oracleのパラメータファイルspfile
に似ていますが、Oracleとは異なり、パラメータファイルがないとインスタンス起動時にデータベースが失敗します。
1.2Mysqlの構成:
接続プールコンポーネント
管理サービスとツールのコンポーネント
SQLインターフェースコンポーネント
クエリ アナライザー コンポーネント
コンポーネントの最適化
キャッシュコンポーネント
プラグインストレージエンジン
物理ファイル
ストレージ エンジンはデータベースではなくテーブル構造に基づいています
1.3Mysqlストレージエンジン
独自のストレージ エンジンを作成するための MySQL 事前定義ストレージ エンジン インターフェイス
InnoDB ストレージ エンジン
設計目標は主にオンライン トランザクション処理アプリケーション向けであり、行ロック設計が特徴であり、Oracle と同様の非ロック読み取りをサポートします。デフォルトでは、読み取りおよび書き込み操作はロックを生成しません。
ストレージ エンジン テーブルは論理テーブル スペースに配置され、独立した ibd ファイルに配置されます。
テーブルへの格納には、集計アプローチが採用されます。
MyISAMストレージエンジン
物事、テーブルのデザインはサポートしていませんが、全文
index
をサポートしています。一部の OLAP データベース アプリケーションの場合
バッファ プールは一部のインデックス ファイルをキャッシュ
するだけであり、データ ファイルはバッファリングしません
エンジン テーブルは MYD と MYI で構成されます。MYD はデータ ファイルの保存に使用され、MYI はインデックス ファイルの保存に使用されます。myismpack ツールを使用してファイルをさらに圧縮できます。
NDBエンジン
クラスタストレージエンジンであり、すべてのデータがメモリ上に配置される共有構造となっており、主キーの検索速度が非常に高速です。
また、NDB データ ストレージ ノードを追加することで、データベースのパフォーマンスが直線的に向上し、可用性とパフォーマンスの高いクラスター システムが構築されます。
メモリエンジン
テーブル内のデータはメモリに保存され、データベースが再起動されるかクラッシュすると、テーブル内のすべてのデータが消えます。一時テーブルの保存に適しています
デフォルトでは、B+ ツリー インデックスではなく、ハッシュ インデックスが使用されます。
テーブル ロックのみがサポートされており、同時実行パフォーマンスは比較的劣ります。
アーカイブストレージエンジン
圧縮と保存には zlib アルゴリズムを使用します。ログ情報などの過剰なデータの保存に非常に適しています
行ロックを使用して高度な同時挿入操作を実装する
主に高速挿入・圧縮機能を提供します。
フェデレートストレージエンジン
エンジン テーブルはデータを保存せず、MySQL データベース サーバーを指すだけであり、異種データベースのテーブルはサポートしません。
Maria ストレージ エンジン
オリジナルの MyiSAM ストレージ エンジンを置き換え、Mysql のデフォルト エンジンになります
キャッシュされたデータとインデックス ファイルをサポートし、行ロック設計を適用し、MVCC 機能を提供し、トランザクションおよび非トランザクション セキュリティ オプションをサポートします。
show Engine を使用して、mysql データベースでサポートされているストレージ エンジンをクエリします。
1.4 Mysq に接続する
これは、Mysql データベース インスタンスと通信する接続プロセスです。
一般的な通信方法: パイプ、名前付きパイプ、名前付き名前、TCP/IP ソケット、UNIX ドメイン ソケット
TCPIP:
mysql -h192.168.0.0.1 -u david -p
Mysql は、権限
view
をチェックして、要求された IP が Mysql インスタンスに接続できるかどうかを判断します。テーブルは user です。
名前付きパイプと共有メモリ
mysql
設定ファイルで --enable>name-pipe を開始します
共有メモリを提供し、構成ファイルに --shard-Memory 実装を追加します
UNIXソケット
mysql -udavid -S /tmp/mysql.sock
【関連する推奨事項】
1.
無料のmysqlオンラインビデオチュートリアルMySQLの最新マニュアルチュートリアル以上がMysql のストレージ エンジンとアーキテクチャのチュートリアルの紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。