저는 약 2 백만 가지 제품에 대한 제품 가격 정보가있는 MySQL 테이블을 보유하고 있습니다. 매일 나는 가격 정보가 변경된 제품에 대해이 정보를 업데이트해야합니다. [큰 고통].큰 MySQL 테이블 매일 업데이트?
이 변경 사항을 처리하는 가장 좋은 방법은 변경된 제품이 compare and update
과 같은 것일뿐입니다. 당신이 대량 업데이트
저는 약 2 백만 가지 제품에 대한 제품 가격 정보가있는 MySQL 테이블을 보유하고 있습니다. 매일 나는 가격 정보가 변경된 제품에 대해이 정보를 업데이트해야합니다. [큰 고통].큰 MySQL 테이블 매일 업데이트?
이 변경 사항을 처리하는 가장 좋은 방법은 변경된 제품이 compare and update
과 같은 것일뿐입니다. 당신이 대량 업데이트
를 제공 할 수 있습니다
사랑 조언은 당신은 확실히 오히려 작은 업데이트 문을 많이보다 LOAD DATA INFILE
를 사용한다.
첫째, 임시 테이블에 새로운 데이터를로드 : 당신은 또한 당신이있어 같은 파일에서 INSERT
새로운 기록하려면
UPDATE products, bar SET products.info = bar.info WHERE products.productid = bar.productid;
:
LOAD DATA INFILE 'foo.txt' INTO TABLE bar (productid, info);
그런 다음 업데이트를 실행 에서 업데이트하면 SELECT INTO OUTFILE
의 기존 테이블에 일치하는 ID가없는 모든 레코드가 LOAD DATA INFILE
을 사용하여 해당 아웃 파일을 제품 테이블에로드 할 수 있습니다.
수백만의 가격과 가격 비교 엔진을 유지하고 원본에서 찾은 각 행을 선택하고 각 행을 개별적으로 업데이트합니다. 행이 없으면 삽입합니다. 이를 가속화하기 위해 InnoDB 트랜잭션을 사용하는 것이 가장 좋습니다.
이것은 모두 소스 파일을 구문 분석하고 테이블을 업데이트하는 방법을 알고있는 PHP 스크립트에 의해 수행됩니다.
전적으로 제품 변경을 감지/추적하는 방법에 따라 다릅니다. – nnichols
솔직히 말해서 문제의 일부분은 - 나는 확신 할 수 없다. 나는 역사적인 가격 정보에 대해 신경 쓰지 않는다. 라이브 테이블에있는 기존 정보를 일괄 업데이트하는 것에 대해서만 [또는 일부 임시 복제, 비교 및 업데이트 또는 무언가를 통해 가능할 수도있다] – Andy
하지만 어떻게 변화를 찾고 있습니까? 그들은 어디에서 왔는가? 고유 한 식별자는 무엇입니까? 당신의 테이블 구조는 무엇입니까? – nnichols