MySQL 論理アーキテクチャの概要 他のデータベースと比較すると、MySQL は、そのアーキテクチャがさまざまなシナリオに適用でき、適切に機能するという点で少し異なります。これは主にストレージ エンジン アーキテクチャに反映されています。プラグイン ストレージ エンジン アーキテクチャは、クエリ処理を他のシステム タスクやデータの保存と抽出から分離します。 このアーキテクチャにより、ビジネス ニーズと実際の要件に基づいて適切なストレージ エンジンを選択できます。 コントローラー層: ビジネス ロジックは次のように処理されます。 プラグ可能なストレージエンジン ファイルストレージ層のコンピュータハードウェア 1. 接続層 最上位層は、ローカル ソック通信や、同様の TCP/IP 通信を実現するためのクライアント/サーバー ベースのツールのほとんどを含む、多数のクライアントと接続サービスです。主に、接続処理、認可認証、関連するセキュリティ ソリューションなどのタスクを実行します。このレイヤーでは、認証を通じて安全にアクセスしたクライアントにスレッドを提供するために、スレッド プールの概念が導入されています。 SSL ベースの安全なリンクもこの層で実装できます。サーバーは、安全にアクセスする各クライアントの操作権限も検証します。 2. サービス層 2.1 管理サービスとユーティリティ: システム管理および制御ツール 2.2 SQL インターフェイス: SQL インターフェイスは、ユーザーの SQL コマンドを受け入れ、ユーザーがクエリする必要のある結果を返します。たとえば、select fromはSQLインターフェースを呼び出します 2.3 パーサー: パーサー 2.4 オプティマイザー: クエリ オプティマイザー。 2.5 キャッシュとバッファ: クエリ キャッシュ。 3. エンジン層 ストレージ エンジン レイヤー: ストレージ エンジンは、MySQL でのデータの保存と抽出を実際に担当します。サーバーは API を介してストレージ エンジンと通信します。ストレージ エンジンによって機能が異なるため、実際のニーズに応じて選択できます。 MyISAMとInnoDBは後ほど導入される予定 4. ストレージ層 データ ストレージ層は主に、raw デバイス上で実行されているファイル システムにデータを保存し、ストレージ エンジンとのやり取りを完了します。 概要 クエリフローチャート: まず、MySQL のクエリプロセスはおおよそ次のようになります。
MySQL ストレージ エンジン コマンドの表示 1 コマンドで表示する方法 MySQL が現在提供しているストレージ エンジンを確認します。 mysql> エンジンを表示します。 InnoDB のデフォルト。トランザクション、外部キー、行ロックをサポート MySQL の現在のデフォルトのストレージ エンジンを確認します。 mysql> '%storage_engine%' のような変数を表示します。 デフォルトはInnoDBです 各エンジンの紹介 1. InnoDB ストレージエンジン InnoDB は、多数の短命トランザクションを処理するように設計された MySQL のデフォルトのトランザクション エンジンです。別のストレージ エンジンを使用する特別な理由がない限り、InnoDB エンジンを優先する必要があります。 行レベルのロックは、同時実行性の高い状況に適しています。 2. MyISAM ストレージエンジン MyISAM は、全文インデックス、圧縮、空間関数 (GIS) など、多数の機能を提供しますが、トランザクションと行レベルのロックはサポートしていません (MyISAM はテーブルを変更するときにテーブル全体をロックします)。 1 つの明らかな欠点は、クラッシュ後に安全に回復できないことです。 3. アーカイブエンジン アーカイブ ストレージ エンジンは INSERT および SELECT 操作のみをサポートし、MySQL 5.1 より前のインデックスはサポートしません。 4. ブラックホールエンジン Blackhole エンジンはストレージ メカニズムを実装していません。挿入されたデータはすべて破棄され、データは保存されません。ただし、サーバーは Blackhole テーブルのログを記録するため、これを使用してデータをバックアップ データベースにコピーしたり、単にログに記録したりすることができます。ただし、この適用方法では多くの問題が発生するため、お勧めできません。 5. CSVエンジン CSV エンジンは通常の CSV ファイルを MySQL テーブルとして処理できますが、インデックスはサポートしていません。 6. メモリエンジン データにすばやくアクセスする必要があり、再起動後もデータが変更されたり失われたりしない場合は、メモリ テーブルを使用すると非常に便利です。メモリ テーブルは、MyISAM テーブルよりも少なくとも 1 桁高速です。 (Redisなどの専門的なメモリデータベースを使用する方が高速です) 7. フェデレーテッドエンジン Federated エンジンは、他の MySQL サーバーにアクセスするためのプロキシです。このエンジンはサーバー間で優れた柔軟性を提供するように見えますが、問題が発生することもよくあるため、デフォルトでは無効になっています。 MyISAM と InnoDB (要点)
InnoDB インデックスは B+TREE を使用し、MyISAM インデックスは B-tree を使用します。 Alibaba と Taobao ではどちらを使用すればよいですか? • Percona は MySQL データベース サーバーを改良し、MySQL に比べて機能とパフォーマンスが大幅に向上しました。このバージョンでは、高負荷状態での InnoDB のパフォーマンスが向上し、DBA にとって非常に便利なパフォーマンス診断ツールがいくつか提供され、サーバーの動作を制御するためのパラメーターとコマンドが増えています。 •同社は、InnoDBを完全に置き換えることができ、より優れたパフォーマンスと同時実行性を備えたXtraDBという新しいストレージエンジンを開発しました。 •Alibaba の MySQL データベースのほとんどは、実際には Percona プロトタイプから変更されています。 以上は、編集者が紹介したMySQL論理アーキテクチャとMySQLストレージエンジンの詳細な統合の紹介です。皆様のお役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。編集者がすぐに返信します。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。 以下もご興味があるかもしれません:
|
<<: Vue ローカルコンポーネントデータ共有 Vue.observable() の使用
HTML Web ページ リスト タグの学習チュートリアル。 HTML ページでは、リストはアウトラ...
質問ガイド1. Hadoop 3.x はどのようにして障害を許容するのでしょうか? 2. Hadoo...
目次サイクルのために入室のためのその間しながら行うループから抜け出す要約するサイクルのためにループは...
序文運用・保守を行う人がスキルを持っていなければ、サーバーを操作するのに恥ずかしさを感じてしまうと言...
目次1. 暗黙的な変換二重等号での変換ブール型変換「+」と「-」 2. 強制型変換' ...
コードをコピーコードは次のとおりです。 <!--doctype はドキュメント タイプ htm...
Cocos Creator モジュラースクリプトCocos Creator を使用すると、コードを複...
Firefox、Opera、その他のブラウザは Webdings フォントをサポートしていません。回...
この記事では、centos7 環境でソース コードから mysql5.7.16 をインストールする方...
目次JVM クラスローダーTomcat クラスローダークラスを検索ロードクラスクラスをロードしようと...
現在、クラウドサーバーに nginx をインストールする際、最初に zlib などの依存ライブラリを...
中国初のカッター github.com/chokcocoまず、ここに画像があります。純粋な CSS ...
最近何かをするときにラベル タグを使用しました。以前はラベル タグをほとんど使用していなかったため、...
興味深い発見:合計 1000 件のレコードを含むテーブルがあります。クエリ ステートメントは次のよう...
CSS ファイルでは、フォント名が文字化けしていることがよくあります。これは、作成者が中国語フォン...