php - 100,000개의 데이터를 가져옵니다. 데이터베이스에 100만 개의 데이터가 있습니다. 중복을 확인하는 방법은 무엇입니까?
PHP中文网
PHP中文网 2017-05-16 13:09:47
0
4
779

특정 요구사항

<올>
  • 데이터베이스에는 1백만 개의 데이터가 있습니다.

  • 100,000개의 데이터를 가져와야 합니다.

  • 가져오려는 데이터가 데이터 테이블에 존재하는 경우 데이터 가져오기를 종료하세요.

  • 질문

    비교해야 할 때 각 데이터 조각을 신속하게 가져오고 가져오기에 실패한 경우 데이터를 롤백하는 방법은 무엇입니까?

    PHP中文网
    PHP中文网

    认证高级PHP讲师

    모든 응답(4)
    phpcn_u1582

    대상 테이블을 대상(100,000개 데이터)이라고 하고, 가져와야 하는 테이블을 소스(100,000개 데이터)라고 가정합니다.
    이 예에서 소요되는 시간의 대부분은 두 테이블의 레코드가 동일한지 확인하는 것입니다. 작성자는 모든 필드가 동일하기를 원합니다(id 필드 제외). 같은 기록.

    새로 생성된 대상 및 소스 필드(hashValue)에 저장할 수 있는 각 레코드에 대해 해시와 같은 값을 계산합니다.
    그런 다음 다음 명령문을 사용하여 데이터를 가져옵니다

    으아악
    我想大声告诉你

    거래 효율성을 고려한다면 높지 않아야 합니다

    개인적인 생각은 다음을 참고해주세요

    1. 먼저 삽입할 데이터가 존재하는지 확인하세요

    id가 있는 테이블에서 ID를 선택하세요('k1,k2,k3');

    2. 데이터베이스에 SQL을 작성합니다.

    10w 데이터, 1 sql, 삽입 속도, 2초 안에 해결

    전에 제가 쓴 글을 읽어보실 수 있습니다. 20w 데이터를 한 번에 삽입하는 것을 최적화하여 3초 안에 완료됩니다

    https://my.oschina.net/famous...

    滿天的星座

    제 개인적인 생각은, 가져올 때 무게를 판단하고 고유한 색인을 설정하여 고유성을 보장하는 것이 핵심입니다.

    刘奇

    이 문제를 토대로 후속 가져오기 과정에서 큰 문제가 발생했고, 데이터 가져오기 속도도 느려져서 이에 대한 글을 작성하게 되었습니다.

    /a/11...

    누군가 나중에 보시고 참고용으로 활용하시면 좋겠습니다.

    최신 다운로드
    더>
    웹 효과
    웹사이트 소스 코드
    웹사이트 자료
    프론트엔드 템플릿