はじめに
MySQLは、データをテーブルに編成するデータベースアプリケーションであり、テーブルには値が行と列に編成されています。 MySQLでは、インデックス は、情報をより検索しやすくするデータ構造です。
インデックスがないと、MySQLはテーブル全体を読み取って必要な行を見つけ、非常に非効率的です。
このガイドでは、CREATE INDEX
を使用してMySQLでインデックスを作成する方法を説明します。 ステートメント。
前提条件
- 既存のMySQLインストール
- rootを持つMySQLユーザーアカウント または管理者 特権
- コマンドライン/ターミナルウィンドウへのアクセス:
- Linuxでは、アクティビティ>検索>ターミナルをクリックします
- Windowsでは、スタート>コマンドライン(またはWindows PowerShell)を右クリックします。
MySQLCreateIndex構文
CREATE INDEX
MySQLのステートメントは次の形式を使用します:
mysql> CREATE INDEX [some_index] ON [some_table] ([some_column],[other_column]);
-
some_index
–インデックスの名前 -
some_table
–インデックスが作成されている列を含むテーブルの名前 -
some_column, other_column
–インデックスを作成する列の名前
MySQLは新しいテーブルにインデックスを作成します
MySQLでテーブルを作成すると同時にインデックスを作成するには:
1.ターミナルウィンドウを開き、MySQLシェルにログインします。
mysql -u username -p
2.次のコマンドを入力して、新しいデータベースを作成して切り替えます。
mysql> CREATE DATABASE mytest;
Query OK, 1 row affected (0.01 sec)
mysql; USE mytest;
Database changed
3.次に、テーブルに列を作成し、それらにインデックスを付けます。
mysql> CREATE TABLE example (
col1 INT PRIMARY KEY,
col2 INT NOT NULL,
col3 INT NOT NULL,
col4 VARCHAR(20),
INDEX (col2, col3)
);
このコマンドは、 exampleという名前のテーブルを作成します 、4つの列を入力し、列2と列3のインデックスを追加します。
4.次に、テーブルのインデックスのリストを表示します。
mysql; SHOW INDEXES FROM example;
PRIMARY、COL2、およびCOL3のインデックスが表示されます。 PRIMARYが指定されていなくても、MySQLは主キーのインデックスを自動的に作成しました。
既存のMySQLテーブルにインデックスを追加する
MySQLのベストプラクティスでは、テーブルの作成と同時にインデックスを作成することをお勧めします。ただし、既存のテーブルにインデックスを追加することもできます。以下の手順では、既存のMySQLテーブルにインデックスを追加する方法について説明します。
1.次のコマンドを入力して、新しいテーブルを作成します。
mysql> CREATE TABLE example2 (
col1 INT PRIMARY KEY,
col2 VARCHAR(20),
col3 VARCHAR(20),
col4 VARCHAR(20)
);
Query OK, 0 rows affected (0.25 sec)
2.次に、 example2の現在のインデックスを表示します :
mysql> SHOW INDEXES FROM example2;
システムは、主キーの単一のインデックスを表示する必要があります。
3.次に、次のコマンドを入力して、col2とcol3のインデックスを追加します。
mysql> CREATE INDEX index1 ON example2 (col2,col3);
4. example2のインデックスを表示します :
mysql> SHOW INDEXES FROM example2;
これで、主キーインデックスに加えて、 index1にリストされているcol2とcol3が表示されます。 。