목록2025/06/07 (2)
Just Do IT!

성능 개선 전 로그 분석최근 질문 목록 조회 (/articles/my) API 실행 시 로그를 파악하면 아래의 기능들이 있었다.인증 및 사용자 정보 조회JWT 인증 후 auth_id 기반으로 Member 조회비교적 빠름질문 목록 조회특정 member_id가 작성한 삭제되지 않은 질문을 createdAt 기준으로 3개 가져옴article, stage, project 테이블 join쿼리 자체가 크게 느리지는 않음질문 전체 개수 조회member_id가 작성한 삭제되지 않은 질문 전체 개수 조회article, stage 테이블 join쿼리 자체가 크게 느리지는 않음⇒ 쿼리 실행 시간 외 다른 부분에서 시간이 소요되고 있음을 파악할 수 있었다.그래서 각 단계 별 실행 시간을 측정하여 병목지점을 찾으려고 로그를 추..
EXPLAIN이란?실행 계획DB 서버가 어떤 쿼리를 실행할 것인가 알고 싶을 때 사용하는 명령어DB에는 옵티마이저라는 엔진이 존재하는데, 가장 효율적인 방법으로 SQL을 수행할 최적의 처리 경로를 생성해주는 DBMS의 핵심 엔진이다.옵티마이저는 개발자가 SQL문을 작성하면 바로 쿼리문을 실행하는 것이 아닌, 쿼리문을 어떻게 실행시킬지에 대한 여러 실행 계획을 세운 뒤, 예상 비용을 고려해 가장 효율이 좋은 실행 계획으로 쿼리를 실행시키는 방식으로 수행된다.EXPLAIN은 옵티마이저의 실행 계획이다. 실행 코드는 매우 간단하다EXPLAIN [EXTENDED] SELECT ... FROM ... WHERE ... 이렇게 명령어를 입력해준 다음, 실행 결과를 분석하여 성능을 최적화할 수 있다. MYSQL E..