티스토리 뷰

MySQL

Online DDL in MySQL 5.7.18

니플하임_ 2018.05.30 10:52

1.
MySQL5.7.18 에서 online DDL 이 가능한지 확인
1) enum에 값을 추가하는 것
2) comment를 추가하는 것
3-1) online DDL이 정상적으로 실행된다

alter table 테이블명 ALGORITHM=INPLACE, LOCK=NONE, change column .....;

Query OK, 0 rows affected (0.00 sec)
Records: 0  Duplicates: 0  Warnings: 0

혹은
3-2) online DDL이 실행되지 않는 DDL이다. copy to tmp 테이블을 이용해야 한다.

alter table 테이블명 ALGORITHM=INPLACE, LOCK=NONE, change column .....;

ERROR 1846 (0A000): ALGORITHM=INPLACE is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY.

혹은 
3-3) Algorithm은 INPLACE가 가능하나 lock을 잡아야해서.. online으로 완벽하게 실행되지 않는다.

alter table 테이블명 ALGORITHM=INPLACE, LOCK=NONE, change column .....;

ERROR 1846 (0A000): LOCK=NONE is not supported. Reason: Fulltext index creation requires a lock. Try LOCK=SHARED.

의 결과를 보여준다. 표로 나와있는 정보는 아래 링크를 클릭
https://dev.mysql.com/doc/refman/5.7/en/innodb-create-index-overview.html

댓글
댓글쓰기 폼