집 >데이터 베이스 >MySQL 튜토리얼 >mysql 고급(15) mysql 일괄 삭제 대용량 데이터
1000(syslogs)이 있다고 가정합니다. > 10,000개의 레코드 중 statusid=1인 레코드는 모두 업무를 중단하지 않고 삭제해야 합니다. 거의 600개입니다. 10,000개 레코드를 직접 실행하면 DELETE FROM syslogs WHERE statusid=1 잠금 대기 시간 초과로 인해 삭제가 실패함을 알 수 있습니다. 오류입니다. 이 문에는 너무 많은 레코드가 포함되어 있으므로 LIMIT
매개변수를 통해 일괄 삭제합니다(예: 모든 10000 항목이 한 번 삭제되면 MySQL과 같은 문을 사용하여 : DELETE FROM syslogs WHERE status=1 ORDER BY statusid LIMIT 10000;
를 완료한 다음 여러 번 실행할 수 있습니다. 성공적으로.
대량 삭제 시
limit를 사용하지 않을 경우 대량의 데이터를 삭제하면 교착상태가 발생할 가능성이 높기 때문입니다. delete
의where 문이 인덱스에 없으면 먼저 기본 키를 찾을 수 있습니다. 그런 다음 기본 키를 기반으로 데이터베이스를 삭제합니다. 보통 업데이트
할 때제한 1삭제하는 것이 가장 좋습니다 🎜 > 오용 방지를 위해.
위 내용은 mysql 고급, 일괄삭제, 대용량 데이터 관련 내용이므로 PHP 중국어를 참고해주세요. 홈페이지(www.php.cn)!