テーブルにインデックスを付ける事で、パフォーマンスは向上するが、
NULLが入らないようにする事でよりパフォーマンスが向上する。

①もしインデックスが無ければ、インデックス追加


mysql> desc TABLE911;
+---------+-----------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+-----------------+------+-----+---------+----------------+
| id | int(4) unsigned | NO | PRI | NULL | auto_increment |
| comment | varchar(45) | YES | | NULL | |
+---------+-----------------+------+-----+---------+----------------+
2 rows in set (0.00 sec)

mysql> ALTER TABLE TABLE911 ADD INDEX (comment(10));
Query OK, 12 rows affected (0.04 sec)
Records: 12 Duplicates: 0 Warnings: 0

mysql> desc TABLE911;
+---------+-----------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+-----------------+------+-----+---------+----------------+
| id | int(4) unsigned | NO | PRI | NULL | auto_increment |
| comment | varchar(45) | YES | MUL | NULL | |
+---------+-----------------+------+-----+---------+----------------+
2 rows in set (0.01 sec)

mysql>

add_index

②パフォーマンス向上を図る為に、where句で指定されているcomment列にNULLが
入らないようにする。


mysql> desc TABLE911;
+---------+-----------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+-----------------+------+-----+---------+----------------+
| id | int(4) unsigned | NO | PRI | NULL | auto_increment |
| comment | varchar(45) | YES | MUL | NULL | |
+---------+-----------------+------+-----+---------+----------------+
2 rows in set (0.00 sec)

mysql> alter table TABLE911
-> modify comment varchar(45) NOT NULL;
Query OK, 12 rows affected (0.03 sec)
Records: 12 Duplicates: 0 Warnings: 0

mysql> desc TABLE911;
+---------+-----------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+-----------------+------+-----+---------+----------------+
| id | int(4) unsigned | NO | PRI | NULL | auto_increment |
| comment | varchar(45) | NO | MUL | NULL | |
+---------+-----------------+------+-----+---------+----------------+
2 rows in set (0.01 sec)

mysql>

modify

===========================================
TABLE OPTIMIZATION
===========================================
■適切なINDEXを付ける (付けすぎは良くないです)
■COLUMNSは出来るだけ必要最低限の長さで
■短めのINDEXを作成することで、WHERE句などの比較が可能であれば短めのINDEXを作成する
■COLUMNは出来るだけNOT NULLを指定して作成する。(DEFAULT値でカバーもあり)
===========================================