truncate table table_name을 사용하고 있습니다. 약 1 백만 행의 테이블에 있지만 지난 3 시간이 지나서 실행하는 데 너무 오래 걸렸습니다.테이블을 잘라내는 데 오랜 시간이 걸리므로 정상입니까?
정상입니까? 테이블에서 모든 행을 삭제하는 다른 방법을 제안 할 수 있습니까?
truncate table table_name을 사용하고 있습니다. 약 1 백만 행의 테이블에 있지만 지난 3 시간이 지나서 실행하는 데 너무 오래 걸렸습니다.테이블을 잘라내는 데 오랜 시간이 걸리므로 정상입니까?
정상입니까? 테이블에서 모든 행을 삭제하는 다른 방법을 제안 할 수 있습니까?
,
당신은
쉬운 인덱스 물건의 종류와 일부 외부 키 제한 조건이있을 때 내가 제안 방법은
RENAME TABLE table_name TO t1;
CREATE TABLE table_name LIKE t1;
DROP TABLE t1;
또는 당신은 또한 DELETE FROM table_name;
잔인한 ... 나는 그것을 좋아한다. 정말로 데이터가 필요 없다면; 이것이 아마도 가장 좋은 방법 일 것입니다. – Trent
동의 함, 더 좋은 방법입니다. –
@smratikatiyar :이 방법이 도움이 될 경우 대답을 수락하십시오. –
쿼리 실행 중에 교착 상태가 발생한다고 생각하므로 죽이는 것이 좋습니다.
단일 쿼리에서 작은 청크를 삭제하여 많은 데이터를 삭제하는 데 사용되었습니다 (10k는 정상적으로 작동합니다).
그래서 수도 권리 이렇게 몇 가지 스크립트 당신
truncate가 느린 경우 동일한 구조의 새 테이블을 만든 다음 이전 테이블을 삭제하려고 생각하고 있습니다. 꽤 빠를 것이라고 생각합니다. pls는 이것에 대한 의견을 공유합니다. –
난 그냥 잘라내어 (6 분 이상) 영원히 걸릴했다 그리고 나서 취소했습니다. 또는 그래서 나는 생각했다. 사실, 그 단계는 1 초보다 훨씬 적게 걸렸습니다. 그리고 나는 두 단계 뒤에있는 액션을 취소했습니다 - 액션 출력 창이 업데이트되지 않았습니다.
위의 해결 방법 중 어느 것도 작동하지 않으면 MySQL 서비스 또는 전체 시스템을 한 번 다시 시작하는 것이 좋습니다.
어떤 엔진? MYISAM 또는 InnoDB – hjpotter92
또한 다음을 확인하십시오. http://bugs.mysql.com/bug.php?id=68184 – hjpotter92
현재 테이블을 사용하는 다른 프로세스가 있습니까? – Ben