テーブル内のカラムに対し INDEX を設定すると、
そのカラムをキーに検索を行った時のパフォーマンス
の向上がはかれます。
既存のカラムにこのINDEXを設定するには以下のように
ALTER TABLEを使用します。
1 |
ALTER TABLE ADD INDEX (); |
実施例を以下に記載します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
mysql> show fields from mytest; +-------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+--------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | name | varchar(100) | YES | | NULL | | | age | int(11) | YES | | NULL | | +-------+--------------+------+-----+---------+----------------+ 3 rows in set (0.03 sec) mysql> ALTER TABLE mytest ADD INDEX (name); Query OK, 0 rows affected (0.03 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> show fields from mytest; +-------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+--------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | name | varchar(100) | YES | MUL | NULL | | | age | int(11) | YES | | NULL | | +-------+--------------+------+-----+---------+----------------+ 3 rows in set (0.01 sec) |
INDEXが設定されたカラムには上記のように”Key”に”MUL”が設定されます。
これは”MULTI VALUE”という意味で、ユニークなキーではなく、同じ値が
あり得るキーですよ。という意味っぽいです。
そこで、このカラムにさらに UNIQUEキー を設定してみると、Keyの
値が”UNI”に代わりました。
これはユニークなキーってことですね。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
mysql> mysql> ALTER TABLE mytest ADD UNIQUE (name); Query OK, 0 rows affected (0.01 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> show fields from mytest; +-------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+--------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | name | varchar(100) | YES | UNI | NULL | | | age | int(11) | YES | | NULL | | +-------+--------------+------+-----+---------+----------------+ 3 rows in set (0.00 sec) |
/