TRUNCATE는 10gig 이상의 거대한 테이블에서 오랜 시간이 걸립니까?

TRUNCATE는 10gig 이상의 거대한 테이블에서 오랜 시간이 걸립니까?

empty프로덕션 서버의 ~12GB 테이블에서 phpMyAdmin의 기능을 사용하는 것이 좋은 생각인지 궁금합니다 . 너무 많은 지연을 일으키고 싶지 않지만 디스크 공간을 확보해야 합니다.

이 작업은 Debian 기반 DELL 서버에서 수행해야 합니다.

MySQL 5.1.49 Intel Xeon X3430 @ 2.40Ghz 4GB 메모리

phpMyAdmin이 TRUNCATE테이블을 비우는 데 사용한다고 가정합니다. 테이블을 자르는 데 몇 분 또는 몇 시간이 걸릴 것으로 예상할 수 있습니까? 아니면 테이블 삭제와 유사한 다소 빠른 프로세스입니까?

답변1

만일 거기에트랜잭션이 테이블 스키마를 잠그면 TRUNCATE TABLE명령이 거의 즉시 완료됩니다. 지금까지 내가 가장 기다린 시간은 25GB 테이블을 자르는 데 0.1초였습니다.

어떤 경우든 TRUNCATE TABLE명령은 다른 유지 관리 작업 외에는 어떤 것에도 바람직하지 않은 부작용을 일으키지 않습니다. 서버가 필요한 배타적 잠금을 획득할 수 없으면 차단됩니다. 하지만 대량의 IO나 처리가 필요하기 때문이 아니라 단지 차례를 기다리고 있을 뿐입니다.

관련 정보