레디스를 통해 데이터베이스 튜닝을 시도하다 데이터 수가 너무 많은 것에 비해 캐시하려는 쿼리 데이터 자체 조차
2초씩 * 40만건이 걸려 지나친 시간이 걸리는 것을 확인하고 본질적인 문제가 데이터베이스 / 쿼리 자체에 있다고 생각하게 되었습니다.
SQL 튜닝을 찾아보며 기본적으로 몇천건의 데이터 이하는 exists, in 절을 사용해도 괜찮지만 몇십만, 몇백만 이상의 경우 inner join을 활용해야 한다는 것이 기본적인 내용이었던 것 같고, 기타 튜닝 방법 등에 대해서 도움되었던 글은 다음과 같습니다.
https://d2.naver.com/helloworld/1155
완전히 구현을 하고 좀더 빠르게 만들 수 있는 방법을 찾아보아야 겠지만, 테이블 하나를 더 만드는 것을 요청하던가 쿼리 자체를 튜닝,
혹은 캐시 데이터에서 필터링을 우선하고 해당 필터된 데이터 수가 적다면 그부분만 적용해 놓는 방식을 활용할 수 있을 것 같습니다.
'데이터 베이스' 카테고리의 다른 글
그룹 바이/오더바이 인덱스 튜닝 (0) | 2022.06.18 |
---|---|
인덱스 및 키워드 (0) | 2022.06.18 |
데이터베이스 인덱싱 (0) | 2021.08.06 |
데이터베이스 정규화. (0) | 2021.07.07 |
mysql: db 생성 및 접속 , 데이터베이스 리스트 확인 (0) | 2021.03.04 |