Notice
Link
- Today
- Total
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- CSS
- rn
- 스크롤적용
- springboot
- Back 키 클릭 감지
- view 획득
- DB 계정생성
- reactnative
- springboot 재가동
- 피쉬랜드
- CentOS
- SQL 첫날
- 텍스트컬러
- pid 찾아 kill
- ffmpeg
- Activity 전체화면
- 가변영역 스크롤
- 말줌임 CSS
- vc++
- MariaDB
- 파티션 빠른 삭제
- SQL 마지막날
- MySQL
- mybatis exception
- sql exception
- 터치좌표 view
- 코드로 서버 재실행
- MFC
- kill -9
- c언어
Archives
개발은 하는건가..
[SQL] UPDATE 시 다른 테이블과 조인 본문
반응형
collectData 에는 200만건의 데이터 abnormalLog 에는 70건의 데이터가 존재
abnormalLog 의 meterStatus = -1 인 데이터는 30건이며 이 데이터에 해당하는 dataFKey 필드는 collectData .pKey 에 해당하며 collectData 에 이 데이터들을 업데이트할려고 할때 아래와 같이 했더니 40초 가까이 소요됨.
SELECT *
FROM collectData
WHERE pKey IN (SELECT dataFKey FROM abnormalLog WHERE meterStatus = -1);
--> 16ms 소요
UPDATE collectData SET meterValue = -1;
WHERE pKey IN (SELECT dataFKey FROM abnormalLog WHERE meterStatus = -1);
--> 39초 소요
WHERE IN + subQuery 가 성능이 안좋다고는 하지만 이 정도일 줄은....
그래서 아래와 같이 UPDATE JOIN 할 결과 1ms 만에 처리됨.
UPDATE collectData A
INNER JOIN abnormalLog B ON A.pKey = B.dataFKey
SET A.meterValue = -1
WHERE B.meterStatus = -1;
==> 1ms 소요
오늘의 교훈 IN 안에는 subQuery 를 쓰지 말자
'SQL Query' 카테고리의 다른 글
DB 계정 생성과 읽기 전용 권한 설정 (0) | 2023.06.30 |
---|---|
[SQL] 달의 첫날, 마지막날 구하기 (0) | 2023.05.23 |
[SQL] STR_TO_DATE 로 문자열 날짜를 날짜 형태로 사용 (0) | 2023.04.20 |
여러 row 의 컬럼 값을 하나의 row 로 추출하기 (0) | 2022.05.16 |
SQL 쿼리 - 그룹별로 최상위/최하위 값을 가지는 row 추출 (0) | 2022.03.08 |
Comments