序文:さまざまな技術職の面接では、MySQL 関連の質問がよくされるようです。開発職の面接でも運用職の面接でも、必ずデータベースに関する質問がいくつかされます。友人から、MySQL の面接の質問にどう対処するかを尋ねるプライベートメッセージがよく送られてきます。実際、面接の質問は似たようなものが多いので、事前に準備しておく必要があります。この記事では、面接でよく聞かれる質問について簡単に説明します。一緒に学びましょう。 1. リレーショナル データベースとは何ですか? MySQL についての理解について話してください。これは、データベースに対する面接者の理解度をテストする基本的な質問です。一般的に、理解度について簡潔に整理して話すことができます。例えば: リレーショナル データベースは、リレーショナル モデルを使用してデータを整理し、行と列の形式でデータを保存するデータベースです。リレーショナル データベースの最大の特徴は、トランザクションをサポートしていることです。一般的なリレーショナル データベースには、MySQL、Oracle、SQLServer などがあります。 MySQL は最も人気のあるオープンソース データベースです。 MySQL データベースは、サイズが小さく、速度が速く、総所有コストが低いこと、そして特にオープンソースであることから、多くの企業がコスト削減のために MySQL データベースを採用しています。現在、インターネット上の中小規模の Web サイト、特に OLTP 分野で広く使用されています。 2. MySQL の一般的なストレージ エンジンとその違いは何ですか?この質問もよく聞かれますが、「InnoDB エンジンと MyISAM エンジンの違いは何ですか?」という質問に似ています。 一般的なストレージ エンジン:
InnoDB エンジンと MyISAM エンジンにはいくつかの違いがあります。
3. MySQL インフラストラクチャについて説明します。この質問は、面接対象者の MySQL アーキテクチャに関する理解をテストするもので、「SELECT ステートメントの実行フロー」という質問に似ています。 MySQL の論理アーキテクチャは、主に 3 つのレイヤーに分かれています。
選択ステートメントの実行フロー:
4. よく使用されるいくつかのフィールドタイプについて説明します。この質問は、面接対象者の MySQL フィールド タイプに関する理解をテストするもので、char と varchar の違いなど、多くの小さな質問につながる可能性があります。 よく使用されるフィールドタイプの分類: 数値型: 文字列型: 日付と時刻の種類: int(M) の M は最大表示幅を表します。「最大表示幅」に対する最初の反応は、フィールドに格納できる値の最大幅です。int(1) を作成したので、データ 10 は格納できないと思うかもしれません。実際はそうではありません。int(5) と int(10) の格納範囲は同じです。 CHAR 型は固定長であり、MySQL は定義された文字列の長さに基づいて常に十分なスペースを割り当てます。 CHAR 値が格納される際には、指定された長さまで右側にスペースが埋め込まれ、CHAR 値が取得される際には末尾のスペースが削除されます。 VARCHAR 型は可変長文字列を格納する場合に使用します。格納時に文字数が定義した桁数に達しない場合は末尾にスペースは追加されません。 char(M) と varchar(M) の M は、保存できる文字の最大数を表します。1 つの文字、数字、漢字などは 1 文字を占めます。 5. インデックスの役割、構造、使用仕様について説明します。インデックス作成に関する質問は非常に多いため、明確に説明するには数記事以上かかる可能性があります。以下の質問に対する答えを共有してください。 インデックス作成の目的は、クエリの効率を向上させることです。辞書のディレクトリに例えることができます。辞書コンテンツを検索するときに、ディレクトリに基づいてデータの保存場所を見つけ、直接取得することができます。インデックスはテーブル ディレクトリです。コンテンツを検索する前に、まずディレクトリ内のインデックスの場所を検索して、クエリ データをすばやく見つけることができます。 InnoDB エンジンでは、B+ ツリー インデックスが主に使用されます。各インデックスは実際には B+ ツリーです。B+ ツリーは、ディスクやその他のストレージ補助デバイス用に設計されたバランス検索ツリー (バイナリ ツリーではありません) です。B+ ツリーでは、すべてのデータがリーフ ノードにあり、各リーフ ノードには次のノードへのポインターがあり、順序付けられたリンク リストを形成します。 物理ストレージの観点から見ると、InnoDB インデックスはクラスター化インデックスとセカンダリ インデックスまたは補助インデックスに分けられます。クラスター化インデックスのリーフ ノードには、データの行全体が格納されます。クエリでクラスター化インデックスを使用する場合、必要なレコードを取得するには、クラスター化インデックスの B+ ツリーをスキャンするだけで済みます。セカンダリ インデックスを通じて完全なレコードを検索する場合は、テーブルに戻る必要があります。つまり、セカンダリ インデックスを通じて主キー値を検索し、クラスター化インデックスで完全なレコードを検索します。 インデックスの明らかな利点はクエリを高速化できることですが、インデックスの作成にはコストもかかります。まず、インデックスが作成されるたびに、そのインデックス用の B+ ツリーを作成する必要があり、追加のストレージ スペースが必要になります。次に、テーブル内のデータが追加、削除、または変更されると、インデックスも動的に維持する必要があるため、データ維持の速度が低下します。そのため、インデックスの作成と使用には原則があります。一般的に、インデックスは検索、並べ替え、グループ化、結合に使用される列に対してのみ作成されます。選択性の低い列には、できるだけインデックスを作成しないようにします。 6. MySQL トランザクションの特性と分離レベルについて説明します。MySQL トランザクションに関連する質問もよく寄せられますが、いくつかの原則については、まだ詳細に研究する必要があります。 ACID には 4 つの特性があります。
トランザクション分離レベル:
同時トランザクションによって発生する問題:
上記は、MySQL 面接で頻繁に聞かれる質問に対する詳細な回答です。MySQL 面接で頻繁に聞かれる質問の詳細については、123WORDPRESS.COM の他の関連記事をご覧ください。 以下もご興味があるかもしれません:
|
<<: Docker がデータベースのデプロイに適さない 7 つの理由のまとめ
>>: HTML Web ページ リスト タグ学習チュートリアル
WeChatアプレットプロジェクトでは、開発モジュールに手書き署名機能が含まれ、WeChatアプレッ...
この記事では、動的なパーティクル効果を実現するためのjQueryの具体的なコードを参考までに紹介しま...
目次1. パラダイム基盤1.1 パラダイムの概念2. 3つの主要なパラダイム2.1 3つの主要なパラ...
クエリ書き換えプラグインMySQL 5.7.6 以降、MySQL Server は、サーバーが実行す...
コードをコピーコードは次のとおりです。 <!--doctype はドキュメント タイプ htm...
参考までに、JavaScriptのオブジェクトとメソッドを使用して実装されたWebピンボールゲームを...
この記事の例では、WeChatアプレットのシームレスなスクロールを実現するための具体的なコードを参考...
123WordPress.com-HTML noscriptオブジェクトolオプションPパラントプレ...
この記事では、Vueの具体的なコードを共有して、シンプルなマーキー効果を実現しています。具体的な内容...
目次K8Sの高度な機能高度な機能要約するkubectl サービスの問題のトラブルシューティングK8S...
XML/HTML コードコンテンツをクリップボードにコピー<ボタンスタイル= "カ...
1. MyISAM ストレージエンジン欠点:トランザクションはサポートされていません最小粒度ロック:...
マイグレーションアドバンテージ:小型、高速、総所有コストが低い、オープンソース。複数のオペレーティン...
目次1.Nuxtサーバーサイドレンダリングアプリケーションの展開(SSRサーバーレンダリング)利点:...
1: nginxサーバーソリューション、.conf構成ファイルを変更する解決策は2つある1: 位置 ...