최근에 테이블에 인덱스를 추가할 일이 생겼는데, 문제가 발생했다. 개발한 기능 테스트 중 개발 환경에 있는 데이터들은 기존 테이블의 migration 해온 터라 약 47만 개가 있었다. MongoDB의 collection 형태의 데이터를 이번에 MySQL로 옮겼고, 테이블 생성시에 인덱스를 추가해두지 않았다. 그래서 새로운 인덱스를 추가하려고 하니 엄청나게 많은 시간이 걸리는 게 아닌가... 이런 적은 처음이라 당황했는데, 인덱스 추가를 좀 더 효율적으로 할 수 있는 방법이 있었다.
ALTER TABLE tbl_name ADD PRIMARY KEY (column), ALGORITHM=INPLACE, LOCK=NONE;