MySQL5.7のインデックスを操作する方法
MySQL5.7のインデックス操作をメモ。
既存のテーブルにインデックスを追加する場合Syntax(書き方)が2通りあります。
- CRUDのSyntax
- ALTER TABLEのSyntax
カラムの変更などがあるときはALTER文で、インデックスの編集のみの場合はそれぞれのsyntaxで書けばいいと思います。
インデックスを作成する
CREATE INDEX idx_1 ON teams (created_at DESC)
or
ALTER TABLE teams ADD INDEX idx_2 (created_at DESC)
インデックスを削除する
DROP INDEX idx_1 ON teams
or
ALTER TABLE teams DROP INDEX idx_2
インデックス"名"を変更する
MySQL5.7からできるようになりました。 これはALTER TABLE Syntaxしか用意されてないようです。
ALTER TABLE teams RENAME INDEX idx_x TO idx_y
インデックスを変更する
キー部分の修正のことです。例えば、
(created_at DESC)
としていたのを(user_id ASC, created_at DESC)
に変えたいとか。もしくはそれと同時にインデックス名も変えたいとか。
ALTER TABLE構文でいうMODIFYやCHANGEをしたいみたいな。
しかし、インデックスではこれはできないので、一旦DROPしてから新たにCREATEするという手順になります。
DROP INDEX idx_1 ON teams; CREATE INDEX idx_1_after ON teams (user_id ASC, created_at DESC);
参考