[Database] auto_increment 포함 Table 초기화

MySQL 예시

MySQL에서 데이터를 삭제하고 AUTO_INCREMENT 값을 초기화하려면 아래와 같이 실행합니다:

-- 테이블의 모든 데이터를 삭제
TRUNCATE TABLE table_name;

설명:

  • TRUNCATE TABLE은 테이블의 모든 데이터를 삭제하고, 자동 증가 값을 초기화합니다.
  • 데이터만 삭제하고 싶다면 DELETE FROM table_name;을 사용할 수 있지만, 이 경우 AUTO_INCREMENT 값은 초기화되지 않습니다.

PostgreSQL 예시

PostgreSQL에서는 데이터를 삭제하고, 시퀀스를 초기화해야 합니다:

-- 테이블의 모든 데이터를 삭제
TRUNCATE TABLE table_name RESTART IDENTITY;

설명:

  • TRUNCATE TABLE … RESTART IDENTITY를 사용하면 테이블 데이터를 삭제하고 자동 증가 시퀀스 값도 초기화됩니다.

MongoDB 예시

MongoDB에서는 자동 증가 ID를 기본적으로 지원하지 않지만, 데이터를 삭제하려면 아래 명령을 사용할 수 있습니다:

// 모든 문서 삭제
db.collection_name.deleteMany({});

참고:

  • MongoDB에서 ID는 ObjectId로 자동 생성되며, 별도의 AUTO_INCREMENT 값은 없습니다.
  • 직접 구현한 자동 증가 필드가 있다면 해당 값을 수동으로 초기화해야 합니다.

[MySQL] DB auto repair 및 optimize

제공하는 mysqlcheck로 check 및 복구, optimize를 하려면 다음과 같이 한다.

mysqlcheck -u <USER_ID> -p<PASSWORD> --auto-repair <DB_NAME>
mysqlcheck -u <USER_ID> -p<PASSWORD> --optimize <DB_NAME>

예제로 wordpress의 경우, user를 wordpress로 했다면, 다음과 같이 하면 된다.

mysqlcheck -u wordpress -pPASSWORD_HERE --auto-repair wordpress
mysqlcheck -u wordpress -pPASSWORD_HERE --optimize wordpress

근데 wordpress의 경우 테이블을 optimize를 지원하도록 만들지는 않는다…