매우 느린 검색 및 업데이트 데이터베이스 작업

코딩

거의 400,000 개의 레코드가있는 "table1"테이블이 있습니다. 약 450,000 개의 레코드가있는 또 다른 테이블 "table2"가 있습니다.

table2에서 중복되는 table1의 모든 행을 삭제해야합니다. 나는 PHP로 그것을 시도했고 스크립트는 몇 시간 동안 실행 중이었고 아직 완료되지 않았습니다. 정말 그렇게 많은 시간이 걸리나요?

필드 asin은 table1의 varchar (20)입니다.

ASIN 필드는 table2의 Index 및 char (10)입니다.

$duplicat = 0;
$sql="SELECT asin from asins";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        $ASIN = $row['asin'];
        $sql2 = "select id from asins_chukh where ASIN='$ASIN' limit 1";
        $result2 = $conn->query($sql2);
        if ($result2->num_rows > 0) {
            $duplicat++;
            $sql3 = "UPDATE `asins` SET `duplicate` = '1' WHERE `asins`.`asin` = '$ASIN';";
            $result3 = $conn->query($sql3);
            if($result3) {
                echo "duplicate = $ASIN <br/>";
            }
        }
    }    
}

echo "totaal :$duplicat";
베드로

u는 루프 대신 하나의 단일 SQL 명령을 실행할 수 있습니다.

update table_2 t2 
set t2.duplicate = 1
where exists (
    select id 
    from table_1 t1 
    where t1.id = t2.id);

경고! 위의 SQL을 테스트하지 않았으므로 구문을 확인해야 할 수도 있습니다.

이러한 종류의 데이터베이스 작업의 경우 PHP를 사용하여 루프 및 조인하는 것은 결코 좋은 생각이 아닙니다. 대부분의 시간은 PHP 서버와 mysql 서버 간의 네트워크 데이터 전송에 낭비됩니다.

위의 SQL조차도 너무 오래 걸리면 쿼리 세트를 일정 범위로 제한하는 것을 고려할 수 있습니다. 다음과 같은 것 :

update table_2 t2 
set t2.duplicate = 1
where exists (
    select id 
    from table_1 t1 
    where t1.id = t2.id
      and t2.id > [range_start] and t2.id < [range_end] );

이렇게하면 병렬로 실행되는 여러 업데이트를 시작할 수 있습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Postgres에서 매우 느린 "테이블 업데이트"작업

분류에서Dev

큰 데이터베이스에서 MYSQL 느린 삽입 및 업데이트

분류에서Dev

큰 데이터베이스에서 MYSQL 느린 삽입 및 업데이트

분류에서Dev

SQL 서버에서 매우 느린 쿼리 업데이트

분류에서Dev

업데이트 후 느린 시작

분류에서Dev

큰 테이블에 느린 삽입 및 업데이트

분류에서Dev

인터넷 검색 및 다운로드 속도가 매우 느린 이유는 무엇입니까?

분류에서Dev

Laravel : 대량 검색 및 업데이트

분류에서Dev

PHP의 데이터베이스에 이미지 업로드 및 검색

분류에서Dev

업데이트 된 데이터베이스에서 데이터 검색

분류에서Dev

내 스타트 업이 왜 매우 느린가요?

분류에서Dev

모든 작업에 대해 매우 느린 Windows 탐색기

분류에서Dev

모델 / 데이터베이스 검색을위한 Rails 라우팅 및 동작 로직

분류에서Dev

레코드 추가 / 업데이트 후 이전 페이지 매김 및 검색 필터 유지

분류에서Dev

상업용 PPA 업데이트가 갑자기 매우 느린 이유는 무엇입니까?

분류에서Dev

매일 svn 저장소 및 mysql 데이터베이스 백업

분류에서Dev

데이터베이스 구조, Eav 모델, 너무 느린 검색 쿼리

분류에서Dev

Amazon CloudDistribution 느린 업데이트

분류에서Dev

PHP 로그 아웃 및 데이터베이스 업데이트

분류에서Dev

데이터베이스 항목 PHP 확인 및 업데이트

분류에서Dev

19.0.5 및 20.02로 업데이트 한 후 Nextcloud 느린 응답 / 504 오류

분류에서Dev

청크가있는 EF를 사용하여 데이터베이스 업데이트가 매우 느리게 실행됩니다.

분류에서Dev

데이터 검색 및 데이터베이스에 삽입

분류에서Dev

탄력적 검색 인덱스 매핑 업데이트

분류에서Dev

대형 객체에 json 빌더를 사용할 때 IntelliJ 매우 느린 업데이트

분류에서Dev

데비안 10 매우 느린 업로드

분류에서Dev

Parse 데이터베이스에서 업데이트 된 데이터로 UILabel 및 TextFields 업데이트

분류에서Dev

게시물을 작성하는 방법 (데이터베이스 유효성 검사 및 업데이트)-컨트롤러 구문

분류에서Dev

OpenDJ 스키마 업데이트 및 데이터 업데이트

Related 관련 기사

  1. 1

    Postgres에서 매우 느린 "테이블 업데이트"작업

  2. 2

    큰 데이터베이스에서 MYSQL 느린 삽입 및 업데이트

  3. 3

    큰 데이터베이스에서 MYSQL 느린 삽입 및 업데이트

  4. 4

    SQL 서버에서 매우 느린 쿼리 업데이트

  5. 5

    업데이트 후 느린 시작

  6. 6

    큰 테이블에 느린 삽입 및 업데이트

  7. 7

    인터넷 검색 및 다운로드 속도가 매우 느린 이유는 무엇입니까?

  8. 8

    Laravel : 대량 검색 및 업데이트

  9. 9

    PHP의 데이터베이스에 이미지 업로드 및 검색

  10. 10

    업데이트 된 데이터베이스에서 데이터 검색

  11. 11

    내 스타트 업이 왜 매우 느린가요?

  12. 12

    모든 작업에 대해 매우 느린 Windows 탐색기

  13. 13

    모델 / 데이터베이스 검색을위한 Rails 라우팅 및 동작 로직

  14. 14

    레코드 추가 / 업데이트 후 이전 페이지 매김 및 검색 필터 유지

  15. 15

    상업용 PPA 업데이트가 갑자기 매우 느린 이유는 무엇입니까?

  16. 16

    매일 svn 저장소 및 mysql 데이터베이스 백업

  17. 17

    데이터베이스 구조, Eav 모델, 너무 느린 검색 쿼리

  18. 18

    Amazon CloudDistribution 느린 업데이트

  19. 19

    PHP 로그 아웃 및 데이터베이스 업데이트

  20. 20

    데이터베이스 항목 PHP 확인 및 업데이트

  21. 21

    19.0.5 및 20.02로 업데이트 한 후 Nextcloud 느린 응답 / 504 오류

  22. 22

    청크가있는 EF를 사용하여 데이터베이스 업데이트가 매우 느리게 실행됩니다.

  23. 23

    데이터 검색 및 데이터베이스에 삽입

  24. 24

    탄력적 검색 인덱스 매핑 업데이트

  25. 25

    대형 객체에 json 빌더를 사용할 때 IntelliJ 매우 느린 업데이트

  26. 26

    데비안 10 매우 느린 업로드

  27. 27

    Parse 데이터베이스에서 업데이트 된 데이터로 UILabel 및 TextFields 업데이트

  28. 28

    게시물을 작성하는 방법 (데이터베이스 유효성 검사 및 업데이트)-컨트롤러 구문

  29. 29

    OpenDJ 스키마 업데이트 및 데이터 업데이트

뜨겁다태그

보관