>  기사  >  데이터 베이스  >  mysql 고급(15) mysql 일괄 삭제 대용량 데이터

mysql 고급(15) mysql 일괄 삭제 대용량 데이터

黄舟
黄舟원래의
2017-02-10 11:04:091432검색

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)!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.