안녕하세요. DB 튜닝 프로젝트를 하고있는 개발자입니다. 처음 이프로젝트를 하면서 튜닝에 대해서 잘 모른상태에서 튜닝을할려고하니 정말 미치겠더라구요. 일단 DB 구조가 엉망이고 이라서 이걸 튜닝하는데 정말 애쓰고있습니다. ㅠ
그래도 DB튜닝을 해보신분한테 배워서 지금은 탈없이 프로젝트 중간단계까지 왔습니다.
튜닝을 공부하면서 느낀점은 튜닝은 정말 케바케 정답이 없는거같습니다.
제가 지금까지 튜닝하면서 느낀점을 적어보겠습니다.
첫번째 .드라이빙 테이블을 줄여라
-최초 드라이빙 테이블 건수를 줄여야 조인할때도 최대한 건수를 줄일수있다.
두번째. 최대한 조인을 사용하지말고 서브쿼리를 사용해라
- 해당 프로젝트 쿼리들을 보면 조인이 보통 4~5개가 기본입니다. 쓸때없는 조인을 없애고 서브쿼리를 사용하니 속도가 어느정도 나오더라구요.
하지만 보여주는 컬럼이많으면 서브쿼리를 많이 사용해도 X
세번째.인덱스,파티션 다사용해도 속도가 안나온다면 통합테이블을 사용해라
-저는 기존에 인덱스가 다잡혀있어 거기서 더 추가하니 문제가 생기더라구요 그래서 마지막방법!!! 통합테이블 이방법은 실시간데이터는 아닙니다. 조회쿼리를 한 테이블에 데이터를 저장하고 그걸 배치나 ,업데이트를 시켜 보여주는 방법입니다. 보통 통계치를 낼때 자주 사용한다고 하더라구요 .
네번쨰. 담당자와 협의후 몇년치 데이터만 넣어라
- 이부분도 고객과 잘협의가 된다면 이방법도 좋은방법이라고 생각합니다.
이방법을 사용할려고했지만 저는 DB구조,업무가 엉망이라 날짜기준을 무슨데이터로 잡아야할지 ㅠ
누가보면 이 튜닝방법이 당연한걸수 도 있지만 그 당연한게 어렵더라구요 저는 ㅠ
위에 방법 말고 더 좋은 튜닝방법이 있을까요. 혹시 책을 보면 더 좋은 팁들이 있을까요?
좋은 답변들 부탁드립니다.