MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLでインデックス付きのテーブルを作成する方法を徹底解説

MySQLでは、テーブル作成後にCREATE INDEX文を使うことで、特定のカラムに対してインデックスを追加できます。検索速度の向上やデータ整合性の確保において、インデックスは非常に重要な役割を果たします。

この記事では、基本的な構文から実際の実行例まで、順を追ってわかりやすく解説します。

インデックス付きテーブルを作成する基本構文

まずテーブルを作成し、その後CREATE INDEX文でインデックスを追加します。基本の構文は以下のとおりです。

create table yourTableName
(
yourColumnName1 dataType,
yourColumnName2 dataType
.
.
.
N
);
create index yourIndexName1 on(yourColumnName1);
create index yourIndexName2 on(yourColumnName2);

ステップ1:テーブルを作成する

それでは、実際にサンプル用のテーブルを作成してみましょう。ここでは、Id(整数型)とName(可変長文字列型)の2つのカラムを持つテーブルを定義します。

mysql> create table DemoTable
    -> (
    -> Id int,
    -> Name varchar(20)
    -> );
Query OK, 0 rows affected (0.63 sec)

「Query OK」と表示されれば、テーブルの作成は成功です。

ステップ2:インデックスを作成する

続いて、作成したテーブルに対してインデックスを追加します。IdカラムとNameカラムのそれぞれにインデックスを作成するクエリは以下のとおりです。

mysql> create index id_index on DemoTable(Id);
Query OK, 0 rows affected (0.36 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> create index Name_index on DemoTable(Name);
Query OK, 0 rows affected (0.38 sec)
Records: 0 Duplicates: 0 Warnings: 0

エラーが出力されずに完了すれば、両方のカラムにインデックスが正常に設定されています。

ステップ3:テーブル構造を確認する

インデックスが正しく作成されたかどうかは、SHOW CREATE TABLE文でテーブル定義を確認することで検証できます。

mysql> show create table DemoTable;

このコマンドを実行すると、次のような出力が得られます。

+---------------+-----------------------------------------------------------------------------------------+
| Table         | Create Table                                                                            |
+---------------+-----------------------------------------------------------------------------------------+
| DemoTable     | CREATE TABLE `DemoTable` ( `Id` int(11) DEFAULT NULL, `Name` varchar(20) COLLATE        |
|               | utf8_unicode_ci DEFAULT NULL, KEY `id_index` (`Id`), KEY `Name_index` (`Name`) )        |
|               | ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci                              |
+---------------+------------------------------------------------------------------------------------------+
1 row in set (0.05 sec)

出力結果の中にKEY `id_index` (`Id`)およびKEY `Name_index` (`Name`)という記述があることから、2つのインデックスが正しく登録されていることが確認できます。

補足:インデックス設計のポイント

  • 検索条件で使うカラムに設定する: WHERE句やJOINの条件として頻繁に使用されるカラムにインデックスを付与すると、クエリの高速化に大きく貢献します。
  • 更新頻度とのバランスを考える: インデックスは検索を高速化する一方、INSERTやUPDATEのたびに索引情報も更新されるため、過剰な付与は書き込み性能を低下させる可能性があります。
  • テーブル作成時にまとめて定義も可能: CREATE TABLE文の中にINDEX idx_name (column)のように直接記述すれば、テーブル作成と同時にインデックスを定義することもできます。

用途に応じて適切なカラムにインデックスを設定し、データベースのパフォーマンス向上に活かしましょう。

  1. JavaScriptでテーブルを検索・絞り込むフィルター機能を実装する方法

    JavaScriptを使えば、検索ボックスに入力した文字列に一致する行だけを表示する「フィルターテーブル」を簡単に実装できます。本記事では、keyupイベントを活用した基本的な実装例を、完全なサンプルコードとともに解説します。 サンプルコード <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1" /> <style> * { box

  2. HTMLでキャプション(表題)付きのテーブルを作成する方法

    HTMLでキャプション(表題)付きのテーブルを作成するには、<caption>タグを使用します。キャプションはテーブルの内部に配置され、<table>タグの直後に記述するのが決まりです。 <caption>タグで指定したテキストは、デフォルトではテーブルの上部中央に表示されます。表示位置を変更したい場合は、CSSの「caption-side」プロパティ(top・bottom・left・rightなど)を使って調整することも可能です。 コード例 以下のコードを実行すると、キャプション付きのテーブルがどのように表示されるかを確認できます。 <!DOCTY