기존쿼리
select count(*) from Obj.table where date_format(date,'%Y%m%d') between 20201001 and 20210930 and reference in (0,1) and sd_limit = 1;
수정쿼리
select count(*) from Obj.table WHERE date between '2020-10-01' AND '2021-09-30' and reference in (0,1) and sd_limit = 1;
date 칼럼은 datetime으로 지정되어있으니 컬럼명 between 'YYYY-mm-dd' and 'YYYY-mm-dd'로 조회하는게 속도에 더 좋다고 하여서 수정하였다.
추가로 reference값은 조회해보니 1인 값은 없어서 reference = 0으로 조건을 주고 다시했다. in으로 조회하면서 없는 값을 찾아서 일어난 오류도 있었을까?..
여튼 계속된 오류가 뜨다가 어케된건지 update자체는 잘 끝난 것 같다. 값이 변경되어있네...
결론
데이터 수가 많아서 발생하는 문제..
update도 데이터 조회 후 수정되는 것이므로
1. 쿼리 튜닝
2. 타임아웃 시간 늘리기
등의 다양한 방법을 시도해보기..
2022.06.29 추가
쿼리를 다시보니 where 조건문을 수정해줄 필요가 있을 것 같다.
성능향상을 위한 방법에 대해 고려해봐야할 것 같다는 생각이 든다. 관련 포스팅을 조만간 정리할 것 !
'Development > MySql' 카테고리의 다른 글
[MySQL] 효과적인 대용량 데이터 처리 방법 (0) | 2022.12.20 |
---|---|
date 조회 시 유의사항 (0) | 2022.01.18 |
MySQL 테이블 크기 확인하기 (0) | 2022.01.18 |
toad for MySQL 에러 (0) | 2022.01.07 |
Toad for MySQL 정렬 단축키 (0) | 2021.12.30 |