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() の使用
1. docker.serviceファイルを編集する: : vi /usr/lib/systemd/...
目次序文1. GMT GMTとはGMTの歴史2. UTC UTCとはUTC は次の 2 つの部分で構...
この記事では、MySQL が乱数を生成し、文字列を連結する方法について例を使用して説明します。ご参考...
序文この記事では、私が手動で実装したフロントエンドの一般的な SMS 認証コード入力コンポーネントと...
ミラーリングも Docker のコアコンポーネントの 1 つです。ミラーリングはコンテナ操作の基盤で...
この記事では、ホイール抽選を簡単に実装するためのVueの具体的なコードを参考までに共有します。具体的...
5月の最も重要なインタラクティブデザイン記事!今年、Baiduのデザイナーは体験の観点から出発し、大...
スレッドが同時に実行される場合、スレッドがリソースを競合してデータの曖昧さが生じるのを防ぐために、重...
この記事では、MySQL テーブル データのインポートおよびエクスポート操作について説明します。ご参...
CSS カウンター属性はほぼすべてのブラウザ (IE8 を含む) でサポートされていますが、あまり使...
MySQL 8.0.12 のインストールには 2 日かかり、さまざまな問題が発生しました。以下にまと...
目次502 不正なゲートウェイ エラーの発生1. 502 不正なゲートウェイ エラーとは何ですか? ...
テーブルはいつ使用されますか?最近では、Web ページの全体的なレイアウトにテーブルが使用されること...
1. KVM仮想マシンの移行方法と注意すべき点KVM 仮想マシンを移行する方法は 2 つあります。...
1. Tomcatのインストールパスを作成する mkdir /usr/local/tomcat 2....