いつインデックスを作成するか? MySQL5.6以上であれば、インデックス作成中に該当テーブルに対するSELECTやUPDATEが可能です。 しかし、MySQLにはメタロックという仕組みがあるため、メタロックが取得できない時間帯には インデックスを作成してはいけません。 結果として、該当テーブルへのアクセスが少ない時間帯に実施する必要があります。 ※数千万件程度のレコード数のテーブルになってくると30分以上かかったりします。 メタロックのまとめ ポイントだけ記載します - ALTER TABLE文の開始時にメタロックを取得する。 - メタロックが取得できない場合、「Waiting for table metadata lock」となり、待ちになる。 - 「Waiting for table metadata lock」の間、該当テーブルへのアクセスがすべて待ちになるため、システム障害につな