A. 初心者レベルの MySQL の質問:
-
MySQL とは何ですか?
- MySQL は、データベースに格納されているデータへのアクセス、管理、操作に構造化照会言語 (SQL) を使用するオープンソースのリレーショナル データベース管理システム (RDBMS) です。
-
MySQL の主な機能は何ですか?
- オープンソース、クロスプラットフォームのサポート、高性能、複雑なクエリのサポート、セキュリティ機能、ACID 準拠、スケーラビリティ、レプリケーション、クラスタリング。
-
リレーショナル データベースとは何ですか?
- リレーショナル データベースは、行と列で構成されるテーブルにデータを格納するデータベースの一種です。各テーブルには一意のキーがあり、テーブル間の関係は外部キーを使用して確立されます。
-
SQL とは何ですか?
- SQL (Structured Query Language) は、データのクエリ、挿入、更新、削除などのタスクを含む、リレーショナル データベースの管理と操作に使用される標準プログラミング言語です。
-
MySQL のさまざまなデータ型とは何ですか?
- MySQL は次のようなさまざまなデータ型をサポートしています。
-
数値: INT、FLOAT、DOUBLE、DECIMAL
-
文字列: VARCHAR、TEXT、CHAR
-
日付と時刻: 日付、日時、タイムスタンプ、時刻
-
バイナリ: BLOB、BINARY
-
主キーとは何ですか?
- 主キーは、テーブル レコードの一意の識別子です。これにより、主キー列に重複した値が格納されなくなり、各テーブルに主キーを 1 つだけ持つことができます。
-
外部キーとは何ですか?
- 外部キーは、別のテーブルの行を一意に識別するテーブル内のフィールド (またはフィールドのコレクション) で、2 つのテーブル間のリンクを確立し、参照整合性を強制します。
-
CHAR と VARCHAR の違いは何ですか?
-
CHAR は固定長文字列ですが、VARCHAR は可変長文字列です。 CHAR は文字列の長さが予測可能な場合に使用されますが、VARCHAR はさまざまな長さに対してスペース効率が高くなります。
-
MySQL の AUTO_INCREMENT とは何ですか?
-
AUTO_INCREMENT は、テーブル内の新しいレコードの一意の識別子を自動的に生成する MySQL の機能で、主キー列によく使用されます。
-
SQL の JOIN 句とは何ですか?
-
JOIN は、関連する列に基づいて 2 つ以上のテーブルの行を結合するために使用されます。タイプには、INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL JOIN があります。
-
INNER JOIN とは何ですか?
-
INNER JOIN は、結合される両方のテーブルで一致する値を持つ行のみを返します。
-
左結合とは何ですか?
-
LEFT JOIN は、左側のテーブルからすべての行を返し、右側のテーブルから一致した行を返します。一致するものが見つからない場合は、右側のテーブルの列に対して NULL 値が返されます。
-
SQL の UNION とは何ですか?
-
UNION は、2 つ以上の SELECT クエリの結果セットを結合し、クエリ間の重複行を削除します。すべての SELECT ステートメントの列は、同じ番号とデータ型を持つ必要があります。
-
UNION と UNION ALL の違いは何ですか?
-
UNION は重複した行を削除しますが、UNION ALL は結合された結果セットからすべての重複を含みます。
-
GROUP BY 句とは何ですか?
-
GROUP BY は、同じ値を持つ行を集計行にグループ化し、SUM()、AVG()、COUNT()、MIN()、MAX() などの集計関数でよく使用されます。
B. 中級レベルの MySQL の質問:
-
MySQL のインデックスとは何ですか?
- インデックスは、テーブルのデータ取得操作の速度を向上させるデータ構造です。テーブル全体をスキャンせずにデータをすばやく見つけるために使用されます。
-
MySQL のインデックスにはどのような種類がありますか?
- MySQL の一般的なインデックス タイプには次のものがあります。
-
主インデックス: 主キーに対して自動的に作成されます。
-
一意のインデックス: インデックス付き列内のすべての値が一意であることを保証します。
-
全文インデックス: テキスト検索に使用されます。
-
複合インデックス: 複数の列のインデックス。
-
正規化とは何ですか?
- 正規化は、冗長性を減らし、データの整合性を向上させるためにデータベース テーブルを整理するプロセスです。これには、大きなテーブルをより小さな関連テーブルに分割することが含まれます。
-
非正規化とは何ですか?
- 非正規化は、テーブルを結合して結合の数を減らし、クエリのパフォーマンスを向上させるプロセスであり、読み取り負荷の高いアプリケーションでよく使用されます。
-
HAVING 句とは何ですか?
-
HAVING は、通常は GROUP BY を使用して、集計が適用された後にレコードをフィルタリングするために使用されます。 WHERE に似ていますが、WHERE は集計の前に適用されます。
-
ストアド プロシージャとは何ですか?
- ストアド プロシージャは、単一の単位として実行できる SQL ステートメントのセットです。これはデータベースに保存され、特定の名前で呼び出すことができ、複雑なロジックをカプセル化するためによく使用されます。
-
MySQL のトリガーとは何ですか?
- トリガーは、指定されたイベント (INSERT、UPDATE、DELETE) がテーブルで発生したときに自動的に実行される一連の SQL ステートメントです。
-
MySQL のビューとは何ですか?
- ビューは、SELECT クエリの結果に基づく仮想テーブルです。データを物理的に保存しませんが、複雑なクエリを簡素化する方法を提供します。
-
MySQL のトランザクションとは何ですか?
- トランザクションは、単一の作業単位として実行される一連の SQL ステートメントです。 ACID プロパティ (原子性、一貫性、分離性、耐久性) に従います。
-
ACID プロパティとは何ですか?
-
原子性: トランザクション内のすべての操作が完了するか、何も完了しません。
-
一貫性: トランザクションは、データベースをある有効な状態から別の有効な状態に移行します。
-
分離: トランザクションは相互に干渉しません。
-
耐久性: トランザクションがコミットされると、変更は永続的になります。
C. 上級レベルの MySQL の質問:
-
MySQL のレプリケーションとは何ですか?
- レプリケーションは、冗長性と負荷分散のために 1 つの MySQL サーバー (マスター) から 1 つ以上のサーバー (スレーブ) にデータをコピーするプロセスです。
-
MySQL のレプリケーションにはどのような種類がありますか?
-
マスター/スレーブ レプリケーション: データはマスターに書き込まれ、スレーブに複製されます。
-
マスター間レプリケーション: 両方のサーバーがマスターとして機能し、相互にデータをレプリケートできます。
-
グループ レプリケーション: 高可用性 MySQL クラスター用のマルチマスター レプリケーション。
-
InnoDB ストレージ エンジンとは何ですか?
- InnoDB は MySQL のデフォルトのストレージ エンジンであり、ACID 準拠のトランザクション、外部キー、クラッシュ リカバリのサポートを提供します。
-
DELETE、TRUNCATE、DROP の違いは何ですか?
-
DELETE: 条件に基づいてテーブルから行を削除します。ロールバックできます。
-
TRUNCATE: テーブルからすべての行を削除しますが、その構造は保持します。ロールバックすることはできません。
-
DROP: 構造を含むテーブル全体を削除します。ロールバックすることはできません。
-
MySQL で遅いクエリを最適化するにはどうすればよいですか?
- テクニックには、適切なインデックスの使用、クエリ実行プランの分析 (EXPLAIN)、効率性を高めるためのクエリの書き換え、サブクエリの代わりに JOIN の使用、SELECT * の回避、ハードウェア リソースの確保が含まれます。
以上がMYSQL の面接でよくある質問の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。