[MySQL]UPDATE, SELECT문
아래의 쿼리문은 넷 다 같은 업데이트 문임
데이터 량은 약 15000개의 행으로 구성되어있음
한 테이블의 정보를 같은 기능의 다른 테이블에 데이터를 똑같이 붙여넣는 작업임
※ 23년 5월 25일 추가사항
측정된 시간은 DB가 설치된 서버컴퓨터 연산 성능에 따라 많이 차이날 수 있습니다.
1-1. (789.211ms = 약 13분)
UPDATE product_info AS pi, item AS i SET
pi.purchase_date = SUBSTR(i.regdate,1,10),
pi.purchase_price = i.buyprice,
pi.retail_price = i.saleprice
WHERE pi.product_code = i.itemcode
1-2.
UPDATE product_info AS pi INNER JOIN item AS i ON pi.product_code = i.itemcode
SET
pi.purchase_date = SUBSTR(i.regdate,1,10),
pi.purchase_price = i.buyprice,
pi.retail_price = i.saleprice
1-3.
UPDATE product_info AS pi,
(
SELECT itemcode, regdate, buyprice, saleprice FROM
item WHERE del_f_cd = '0'
) AS i
SET
pi.purchase_date = SUBSTR(i.regdate,1,10),
pi.purchase_price = i.buyprice,
pi.retail_price = i.saleprice
WHERE pi.product_code = i.itemcode
1-4.
UPDATE product_info AS pi
INNER JOIN
(
SELECT itemcode, regdate, buyprice, saleprice FROM
item WHERE del_f_cd = '0'
) AS i
ON pi.product_code = i.itemcode
SET
pi.purchase_date = SUBSTR(i.regdate,1,10),
pi.purchase_price = i.buyprice,
pi.retail_price = i.saleprice
SUBSTR 함수 사용 여부와 관계없이
업데이트해야하는 1개의 행당 약 15000개의 행을 조회해야 하므로
속도 개선을 하지 못하였음
** 단발성 업데이트라 그냥 실행하였음
** 서버 사양에 따라 속도 천지 차이남
출처 : 직접 작성