(8.0.22)
https://dev.mysql.com/doc/refman/8.0/en/innodb-online-ddl-operations.html
drop table tab1;
create table tab1(col1 int);
insert into tab1 values(1);
create index ind1 on tab1(col1) ALGORITHM=INPLACE;
alter table tab1 engine innodb , ALGORITHM=INPLACE, LOCK=NONE;
drop index ind1 on tab1 ALGORITHM=INPLACE;
※ALGORITHMは指定しない場合、下記順に選択されるため、指定しなくてもよい
INSTANT メタデータの変更のみ。DMLはブロックされない
↓
INPLACE DMLはブロックされない
↓
COPY DMLはブロックされる
※LOCKは指定しない場合、下記順に選択されるため、指定しなくてもよい
NONE 読み書き許可
↓
SHARED 読みだ許可、書き不許可
↓
EXCLUSIVE 読み書き不許可
結論として、MySQLの場合、ONLINE句の付与は気にしなくてよい
(19c)
drop table tab1 purge;
create table tab1(col1 int);
insert into tab1 values(1);
commit;
create index ind1 on tab1(col1) online;
alter index ind1 rebuild online;
drop index ind1 online;
※インデックスリビルドはEEエディションが必要
(13)
drop table tab1;
create table tab1(col1 int);
insert into tab1 values(1);
create index concurrently ind1 on tab1(col1);
reindex index concurrently ind1;
drop index concurrently ind1;
(2019)
drop table tab1;
create table tab1(col1 int);
insert into tab1 values(1);
create CLUSTERED index ind1 on tab1(col1) with( online=on );
alter index ind1 on tab1 rebuild with( online=on );
drop index ind1 on tab1 with( online=on );
create NONCLUSTERED index ind2 on tab1(col1) with( online=on );
alter index ind2 on tab1 rebuild with( online=on );
drop index ind2 on tab1 with( online=on );
drop index ind2 on tab1 ;
※オンラインで削除できるのは、クラスター化インデックスだけです。
※EEエディションが必要