행 삭제와 논리 삭제의 장단점을 구분합니다.
DELETE는 WHERE에 맞는 행을 물리적으로 제거합니다. 복구·감사·참조 요구가 있으면 deleted_at 같은 논리 삭제를 사용할 수 있지만 모든 조회에서 제외 조건과 고유성 정책이 필요합니다.
대량 삭제는 작은 batch로 나누고 복제 지연, 잠금, 로그 크기와 백업 복구 절차를 확인합니다.
외래키 연쇄 삭제는 편리하지만 예상보다 넓은 데이터가 지워질 수 있어 관계별 정책을 검토합니다.
DELETE에 LIMIT을 붙이는 문법은 MariaDB의 확장 기능이고 SQL 표준에도, SQLite·PostgreSQL에도 없습니다.
삭제 전에 대상 수와 샘플 id를 확인하지 않는 습관이 가장 위험합니다.
직접 바꿔보세요cancelled이면서 기준일 이전인 행만 삭제하고 남은 행을 확인하세요.
실행 버튼을 누르면 결과가 여기에 표시됩니다.