728x90
반응형

MySQL에서는 일반적인 TRUNCATE TABLE 명령어로 특정 파티션만 비우는 기능이 없습니다. 그러나 ALTER TABLE ... TRUNCATE PARTITION 명령어를 사용하여 특정 파티션을 개별적으로 삭제할 수 있습니다.


특정 파티션의 데이터 삭제

ALTER TABLE table_name TRUNCATE PARTITION partition_name;

예제

ALTER TABLE sales TRUNCATE PARTITION p2023;
  • sales 테이블에서 p2023 파티션의 모든 데이터를 삭제.
  • 테이블의 다른 파티션에는 영향을 주지 않음.

전체 테이블을 비우는 경우

테이블의 모든 데이터를 삭제하려면 일반적인 TRUNCATE TABLE 사용:

TRUNCATE TABLE sales;

주의: 모든 파티션이 삭제되며 자동 재생성됨.

 

특정 파티션만 삭제 후 재사용 가능하게 만들기

MySQL에서 TRUNCATE PARTITION은 단순히 데이터를 비우는 것이지, 파티션 자체를 제거하지 않습니다.
특정 파티션을 삭제하고 다시 추가하려면:

ALTER TABLE sales DROP PARTITION p2023;
ALTER TABLE sales ADD PARTITION (PARTITION p2023 VALUES LESS THAN (2024));

주의: DROP PARTITION을 사용하면 데이터와 함께 파티션 자체가 삭제되므로 신중히 사용해야 합니다.


TRUNCATE PARTITION을 지원하는 MySQL 버전

  • MySQL 5.7 이상에서 지원됨.
  • 일부 스토리지 엔진(InnoDB, NDB)에서만 가능. MyISAM은 지원되지 않음.

결론

  1. 특정 파티션의 데이터를 삭제하려면:
  2. 모든 데이터를 삭제하려면:
  3. 특정 파티션을 삭제 후 다시 생성하려면:

1. 특정 파티션의 데이터를 삭제하려면:

ALTER TABLE table_name TRUNCATE PARTITION partition_name;

 

 

2. 모든 데이터를 삭제하려면:

TRUNCATE TABLE table_name;

 

 

3. 특정 파티션을 삭제 후 다시 생성하려면:

ALTER TABLE table_name DROP PARTITION partition_name;
ALTER TABLE table_name ADD PARTITION (PARTITION partition_name VALUES ...);

 

이 방법을 활용하면 MySQL의 파티션 테이블에서 원하는 데이터만 효율적으로 삭제할 수 있습니다.

728x90
반응형

+ Recent posts