본문 바로가기

우당탕탕 개발기획 일지

220922 디비 튜닝 진행기 / 1차 진단

728x90

카페24에서 전해준 슬로쿼리를 전달했고, 해당 쿼리를 정리해주셨다.

10개의 쿼리가 나왔다.

 

 

 짚어주신 문제점

1) 데이터베이스 내에 인덱스가 너무 많이 생성되어 있다.

이렇게 인덱스가 많으면 insert 나 update 작업이 느려질 수 밖에 없다. 적절한 인덱스 생성 해야 한다.

 

2) 우리처럼 내부에 DB 전문가가 없는 경우 종종 발생되는 일이다. (다른 곳들에서도 라니 위로가 된다.)

개발자가 개발을 하고 실행해볼 때, 속도가 느리면 인덱스를 써서 속도를 올리곤 하는데 

중간에 DB 전문가가 없는 경우 결국 비효율적인 구조가 발생되는 것이다.

내부에 여러 명의 개발자들이 있는 경우에도 쉽게 발생하는 일이다.

 

3) 지금 준 롱쿼리 (이렇게 표현하심) 들이 문제일 수도 있지만, 그 외의 것들이 문제거나, 그 외의 것들'도' 문제일 수 있다. 추후에는 전반적인 것들을 보고 재정비를 하는 것이 필요할 듯 하다.

 

4) 지금 실행하는데 1초가 걸리면 적게 걸리는 것 같지만,

이걸 수십 번 호출해야 한다면 얘는 1초가 아니라 0.001 이런식으로 덜 걸려야 하는 것이 맞는 것이다.

 

5) 디비 자체를 파라미터 튜닝을 해야할 수도 있다. (파라미터 개념 이해 못함)

 

6) 물리적인 디비 증설이 필요한지도 확인해보라.

사용패던, CPU 사용률, 메모리 사용률을 확인하라.

예를 들어 피크 시간에 CPU 가 50 이상이라면 문제가 있다. 추후를 위해 미리 증량하는 것을 추천한다.

 

 

질문에 대한 답

1. 이번 튜닝 다음에 기능 개발을 앞두고 있는데 또 다시 느려질까요?

→ 해당 기능이 기존과 관련없는 신규 기능이라면 문제가 없지만,

기존 데이터를 불러오는 정도가 아니라 기존 로직을 타고 그런다면 문제가 발생할 여지가 크다

 

2. DB튜닝 > 기능 개발 > DB튜닝 > 기능 개발 이런식으로 진행한다면 비효율적인가요 ?

 정상적이다. 그렇게들 한다.

 

3. 추후에 전반적인 데이터 튜닝을 하게 된다면  기간과 비용은? 필요한 것은 무엇인가요 ?

 기간과 비용은 일단 보고 나서 말할 수 있다.

보기 위해 필요한 자료는 서비스를 실행하는데 필요한 모든 SQL 이다. 이건 개발자님에게 작성해달라고 요청해야 한다.

그리고 기획서들과 ERD 도 있으면 좋다.

ERD는 보통 DB전문가나 외주 개발자님이라면 작성하지 않았을 가능성이 크긴 하다.

 

* ERD (Entity Relationship Diagram)

데이터 베이스 구조도 라고 보면 된다.

개체-관계 모델. 테이블간의 관계를 설명해주는 다이어그램이라고 볼 수 있으며,

이를 통해 프로젝트에서 사용되는 DB의 구조를 한눈에 파악할 수 있다.

 

참고)

https://velog.io/@kjhxxxx/DataBase-ERD%EB%9E%80

 

[DataBase] ERD란?

[DataBase] ERD란?

velog.io

 

728x90