2014-04-03 2 views
0

테이블 2의 ID를 테이블 1에 관련 시켜서 테이블을 비 중복 제거하려고했습니다. DELETE 기능을 사용하려고하지만 시간 제한을 유지합니다 (어떤 이유에서든 인덱스, 많은 양의 데이터 등) 나는 이것이 매우 빠르고 쉬운 방식으로 행해질 수 있음을 안다. 그러나 나는 단지 그것을 작동시키는 것처럼 보이지 않는다. 나는 시도하고이 쿼리를 실행하면 당신이 볼 수있는SQL에서 많은 양의 데이터를 삭제합니다.

DELETE * 
FROM `TABLE 1` 
WHERE EXISTS (select * 
       from table2 
       where t2.Client_Code = t1.Client_Code and t2.`account#` = t1.`account#` 
      ); 

그래서, 내가 표 1의 클라이언트 코드가 표 2의 클라이언트 코드 =입니다 삭제하려면, 표 1의 계정 번호는 표 2의 계정 번호에 등 =이며, SQLyog에 정체된다 처리하지 않습니다. 나는 그것을 시도하고 몇 시간 동안 아무 것도 진행하지 못하게한다. 이 일이 가능하도록 할 수있는 일이 있습니까? 관리자가 항상 이와 같은 쿼리를 쉽게 볼 수 있습니다.

답변

0

속성 Client_Code 및 account #에서 t2 이상의 색인을 추가하십시오. 이 경우 내부 쿼리의 선택이 향상 될 수 있습니다.

+0

이전에 테이블 색인을 설정하는 데 문제가있었습니다. 숫자/문자를 고유 인덱스 또는 기본 인덱스로 설정하려고했습니다. 나는 그것들을 둘 다 설정하지 않고 작동시킬 필요가 있었다. 그것이 내가 필요한 것입니다. – joshE

관련 문제