-
MySQL AUTO_INCREMENT 컬럼 초기화Knowledge 2019. 11. 5. 16:48
MySQL을 이용해서 개발 중에 Primary Key, AUTO_INCREMENT로 설정한 한 컬럼이 있었다.
그리고 이 테이블은 레코드가 추가되고 삭제되기를 반복하는 테이블이었다.
그런데 시나리오가 추가되며 이 컬럼의 값이 처음 예상보다 빠른 속도로 증가하는 문제가 발생했다.
실제 레코드는 4000개쯤 되는데, 신규로 추가된 레코드의 컬럼값은 10만단위였다.
처음 생각한 해결책은 INT로 되어있는 컬럼 타입을 unsigned로 변환하는 것이었다.
이 경우 보수적으로 계산해도 충분한 값이 나와서 사실상 사용에 문제가 없었다.
그런데, 사실 이 id값이 내부적으로만 사용되고 외부에는 참조가 되지 않는 값이기에...
기존 값들을 1부터 오름차순으로 반영하고 추가되는 값은 다시 그 이후로 증가하도록 리셋하는 방법을 생각하게 되었다.
이 방법을 주기적으로 사용할 경우, 딱 저장된 레코드의 숫자까지 컬럼값이 증가할 것이다.
ALTER TABLE <table_name> AUTO_INCREMENT=1; SET @COUNT = 0; UPDATE <table_name> SET <column_name> = @COUNT:=@COUNT+1;
첫 라인을 통해 테이블의 AUTO_INCREMENT 시작값을 조정한다. 만약 빈 테이블이라면 이것만으로 충분하다.
두 번째와 세 번째 라인을 통해 기존 테이블의 컬럼값을 1부터 오름차순으로 변경한다.
Fin.
반응형'Knowledge' 카테고리의 다른 글
[Mac OS] MongoDB 설치하기 (0) 2020.03.03 [Nodejs] express-rate-limit으로 DoS 예방하기 (0) 2019.11.20 리눅스 디스크 용량 확장하기 (0) 2019.10.23 [AWS] EC2 root 계정으로 우분투 로그인 하기 (0) 2019.10.22