데이터베이스를 상속했으며 정리하고 속도를 높이려고합니다. 30,000,000 개의 행을 포함하는 테이블이 있는데 그 중 많은 수는 프로그래머를 대신하여 오류로 인해 정크 데이터가 삽입되었습니다. 새롭고 최적화 된 인덱스를 추가하기 전에 테이블을 MyISAM에서 InnoDB로 변환하고 정크 데이터가 포함 된 많은 행을 삭제하려고합니다.
데이터베이스는 MySQL 5.0이며 서버에 대한 루트 액세스 권한이 있습니다. 먼저 Adminer를 통해 이러한 명령을 실행 한 다음 phpMyAdmin을 동일한 결과로 실행했습니다.
내가 실행중인 명령은
DELETE
FROM `tablename`
WHERE `columnname` LIKE '-%'
기본적으로이 열에서 대시로 시작하는 모든 항목을 삭제하십시오 -
.
약 3-5 분 동안 실행 한 다음 프로세스 목록을 볼 때 사라졌습니다.
그런 다음 달리기
SELECT *
FROM `tablename`
WHERE `columnname` LIKE '-%'
그리고 수백만 행을 반환합니다.
삭제 문장이 왜 완료되지 않습니까?
추신 : 나는 MySQL 5.0이 얼마나 오래된 지 알고 있습니다. DB를 MySQL 5.6 w InnoDB (MariaDB 10 w XtraDB)로 옮기는 작업을하고 있지만 그 때까지 DB를 그대로 사용하려고합니다.
-
편집이 제거되었습니다. 내 답변을 참조하십시오.
WHERE
입니다.