「壊れた MySQL」 - MySQL の概要

MySQL について正式にまとめ始める前に、「壁を壊す」とはどういうことなのかをご紹介しますと、昔、私の上司が「インターネットには元々業界の壁がなかったのに、専門用語を作ったことで多くの業界の壁ができてしまった」と言っていたことがあります。人工的に作られた。出て来い」と納得。

コンピュータの本質は 0 と 1 であり、今日私たちが見ているインターネットの世界は、カプセル化と抽象化を重ねて構築されています。

コンピュータにおける非常に難しい知識を否定するわけではありませんが、私がこれまで接してきた知識がそこまでのレベルに達していない限り、このような業界の壁とも言えるコアな知識は0.01%だと思います。大多数の人は、一生のうちにこれらの問題に遭遇することはないことがわかっています。

そして残るのは、人為的に作られ、時間をかけて習得できる「業界の壁」です。

壁を壊すということは、人間が作った「業界の壁」を打ち破り、技術者をドラゴンのようにすることを意味します。


壁を打ち破るシリーズの最初のトピックとして、インターネット データ ストレージの基礎である MySQL を選択しました。

このトピックでは、トランザクション、インデックス、SQL パフォーマンスの最適化、サブデータベースとサブテーブル、マスター/スレーブ レプリケーションなど、MySQL の中心的な内容を要約します。詳細については、以下のマインドマップを参照してください。

MySQLとは何ですか

MySQL は、インターネット業界で広く使用されている無料のオープンソース リレーショナル データベース管理ソフトウェアです。

MySQLスキーマ

MySQL のプラグイン ストレージ エンジン アーキテクチャは常にその非常に特徴的なハイライトであり、その柔軟な処理方法、高度にカスタマイズ可能で完全にオープンな実装は多くの上級ユーザーによって支持されています。次の図は公式ドキュメントのアーキテクチャ図です。

  • 接続層:主に認可認証や接続処理などの機能を提供する層です。

    • この層では、セキュリティ認証に合格するクライアント要求にスレッドを提供するために、スレッド プールの概念が導入されています。
    • SSL ベースの安全なリンクもこの層に実装できます。
    • この層は、認可認証に合格したクライアント要求に対応するアクセス許可を割り当てます。
  • サービス層: この層は、クエリ分析、分析、最適化、キャッシュ、組み込み関数の実装など、多くのコア機能を実装します。トリガー、ストアド プロシージャ、ビューなど、すべてのクロスストレージ エンジン機能もこの層で実装されます。

  • エンジン層: ストレージ エンジンは MySQL でのデータの保存と抽出を担当し、サーバーは API を介してストレージ エンジンと通信します。MySQL のプラグイン ストレージ エンジン アーキテクチャの特性により、実際のニーズに応じてストレージ エンジンを選択できます。

  • ストレージ層: データをファイル システムに保存します。

面接でよくある質問:

MySQL の具体的なクエリ処理とは何ですか? または SQL ステートメントは MySQL でどのように実行されますか?
MySQL のアーキテクチャを紹介する

  1. クライアントがリクエストを開始します。
  2. 接続層で権限の検証とスレッドの割り当てを実行します。
  3. キャッシュを問い合わせます(キャッシュがある場合は直接戻り、キャッシュが存在しない場合は後続の操作を実行します)
  4. アナライザー (SQL の字句解析および構文解析操作)
  5. オプティマイザー(主に実行されるSQLの最適化に最適な実行計画方法を選択します)
  6. Executor (実行時に、最初にユーザーに実行権限があるかどうかを確認し、その後、このエンジンによって提供されるインターフェイスを使用します)
  7. エンジン層に移動してデータを取得します (クエリ キャッシュが有効な場合、クエリ結果はキャッシュされます)。

MySQLストレージエンジン

MySQL はプラグイン ストレージ エンジン アーキテクチャを使用しており、ニーズに応じてさまざまなストレージ エンジンを選択できます。

現在、インターネットでは一般に InnoDB ストレージ エンジンが使用されており、面接でよく聞かれる質問は、次のような InnoDB ストレージ エンジンと MyISAM ストレージの比較です。

Innodb と MyISAM の違いは何ですか?

次のような観点から答えることができます。

  • トランザクション: InnoDB はトランザクションをサポートしますが、MyISAM はトランザクションをサポートしません
  • ロック: InnoDB は行レベルのロックをサポートしますが、MyISAM はテーブルレベルのロックのみをサポートします。
  • 外部キー: InnoDB は外部キーをサポートします
  • InnoDB はオンラインホットバックアップをサポートします
  • MyISAM は空間インデックスをサポートします

まとめ

MySQL は現在、大小のインターネット工場の主流で使用されているリレーショナル データベース管理ソフトウェアであり、日常業務でも MySQL を中心に開発されており、面接ではほぼ必須の質問となっています。

この記事は、「壊れた壁」シリーズの最初のトピックの最初の記事です。

この記事では、まず次に書く内容 (最初のトピック MySQL) を紹介し、次に MySQL アーキテクチャと MySQL ストレージ エンジンを技術原則とインタビューの質問の観点から紹介します。

参考文献


この記事は毎週土曜日に継続的に更新されます。WeChat で「荒廃した古代伝説」を検索すると、まず読むことができます。

おすすめ

転載: blog.csdn.net/finish_dream/article/details/112414612