중복 테이블을 한 테이블에서 확인하고 다른 테이블에서 삭제하려고합니다. 영원히 멈추고 궁극적으로 500 개의 내부 오류가 발생합니다. 다음은 PHP에서 내 원래의 방법이었다PHP/mysql - 매우 큰 테이블에서 중복 체크가 걸려 넘어짐
$sql_2 = "SELECT account_no FROM customersTable";
$result_2 = mysql_query($sql_2) or die("Error: " . mysql_error() . "<br>");
while(list($acct) = mysql_fetch_row($result_2)) {
$sql_delete = "DELETE FROM tempTable WHERE(account_no = '$acct')";
$result_delete = mysql_query($sql_delete) or die("Error: " . mysql_error() . "<br>");
}
가 그때 대신 위의 스크립트의 다음과 같은 쿼리를 시도, 모든 걸 :
DELETE FROM tempTable WHERE account_no IN (SELECT account_no FROM tempTable)
및
DELETE FROM tempTable USING tempTable, customersTable ct WHERE tempTable.account_no=ct.account_no
을이 모두 20 정지 분 이상이 소요되고 마지막으로 내부 서버 오류가 발생합니다. "요청이 완료되지 않았습니다. 서버가 예기치 않은 조건을 만났습니다."
PHP를 포함하지 않거나 캐싱, 일괄 처리 또는 어떤 작업이든 상관없이 모든 솔루션에 열려 있습니다.
안녕하세요있다. 이 호출에 대한 PHP 로그를 게시 할 수 있습니까? 500 에러 코드가 정확히 무엇인지 검사하는 것이 도움이 될 수 있습니다. – brainondev
기록하지 않은 것 같습니다. –
사본을 보관하지 않고 반복되는 값만 삭제 하시겠습니까? – jcho360