【MySQL5.6以上】Webエンジニア向け!メンテなしで500万件レコード入りのテーブルにINDEXを張る実行時間の目安RailsMySQLActiveRecordInnoDB レコード数が増えていくと、INDEXを張りたくなりますよね。 INDEXのあり/なしでレスポンスが大きく変わります。 でも、「サービスを止めたくない!」 そんなWebエンジニアの方のために、メンテなしでテーブルにINDEXを張る方法を・・・。 答えは簡単。 データベースを「MySQL5.6以上」にすることです。 MySQL5.6からオンラインでのDDLが可能となりました。 つまり、「オンラインでINDEXを張ること」ができます!! 意外と知られていない・・・?! 参考: CREATE INDEX、ADD INDEX項目 MySQL 5.6 リファレンスマニュアル 14.11.1 オンライン DDL の概要 検証環