끊임없이 변화하는 데이터를 마스터 테이블에 병합하는 여러 쿼리를 실행 중이며 아래 쿼리 중 하나가 매우 느리게 실행되는 것 같습니다.이것은 MySQL에서 무엇을하려고 최선의 쿼리입니까?
설정은 다음과 같습니다. products
테이블과 products_temp
테이블의 구조가 같습니다. 새 데이터가 products_temp
테이블로 이동 한 다음 아래의 쿼리와 유사한 쿼리를 실행하여 새 데이터를 마스터 products
테이블과 병합합니다. 이 테이블의
INSERT INTO products (name, brand, price, feeds_id, img_url, referral_url, productid, isbn, ean, upc)
SELECT name, brand, price, feeds_id, img_url, referral_url, productid, isbn, ean, upc
FROM products_temp
WHERE feeds_id = 449
AND productid NOT IN (
SELECT productid
FROM products
WHERE feeds_id = 449
)
모두 feeds_id
에 인덱스가 있지만 어떤 차이를 만드는되지 않은 느낌이있다.
예를 들어, products
은 350 만 개가 넘는 행을 포함 할 수 있으며 products_temp
은 products
을 병합하기 위해 50,000을 포함 할 수 있습니다.
제 질문은 실제로 얼마나 오래 걸릴까요? 얼마나 빨리 만들 수 있습니까?