아래의 쿼리문은 넷 다 같은 업데이트 문임
데이터 량은 약 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개의 행을 조회해야 하므로
속도 개선을 하지 못하였음
** 단발성 업데이트라 그냥 실행하였음
** 서버 사양에 따라 속도 천지 차이남
출처 : 직접 작성
'DB(MySQL, Oracle, PostgreSql)' 카테고리의 다른 글
[MySQL] 로컬 환경 계정 생성 및 권한 부여 (0) | 2023.08.12 |
---|---|
[MySQL] 계정 생성 및 권한 생성방법 (0) | 2023.08.12 |
[MySQL] 행 개수 세기 (Oracle ROWNUM 개념) (0) | 2023.02.02 |
대용량sql 덤프파일에서 특정 테이블 추출하기 (0) | 2022.08.16 |
[MySQL] 프로세스 리스트 보기 (0) | 2022.08.12 |