MySQL Multiple rows 를 one query 구현하기
MySQL 에 자료를 갱신할 일이 생겼다.
갱신할 자료를 가져와 배열에 담았다.
list = [adm, bay, car, del, ear]
이를 반복하면서 Update 를 했더니 오래 걸린다.
자료가 약 300 ~ 400 개인데 3~4초가 나온다.
검색을 해보니
이걸 이용하면 된다고 한다.
뭐 반복문 돌면서 sql 하나의 문자열로 만들었다.
디비 결과는 중복 입력이었다.
다시 검색을 해보니 비교로 사용하는 첫번째 항목은 무조건 Primary 이어야 한다고 한다.
디비의 구조를 변경하였다.
다시 실행해보니 중복 없이 잘 갱신된다.
실행속도도 400개 정도가 1초 이내로 나온다.
갱신할 자료를 가져와 배열에 담았다.
list = [adm, bay, car, del, ear]
이를 반복하면서 Update 를 했더니 오래 걸린다.
자료가 약 300 ~ 400 개인데 3~4초가 나온다.
검색을 해보니
INSERT INTO tb_temp (a, b, c) VALUES(1, 2, 3)
ON DUPLICATE KEY UPDATE c = c + 1
이걸 이용하면 된다고 한다.
뭐 반복문 돌면서 sql 하나의 문자열로 만들었다.
디비 결과는 중복 입력이었다.
다시 검색을 해보니 비교로 사용하는 첫번째 항목은 무조건 Primary 이어야 한다고 한다.
디비의 구조를 변경하였다.
다시 실행해보니 중복 없이 잘 갱신된다.
실행속도도 400개 정도가 1초 이내로 나온다.
댓글
댓글 쓰기