현재 글모아 사이트에서 mysql로 jpa를 통한 검색쿼리를 이용했을 시 응답 속도는




대략 1초 정도 걸린다. 이 이유는 like 쿼리를 이용하여 db에서 full table 스캔으로 테이블을 찾기 때문이다.
이것을 개선하기 위해서는 엘라스틱 서치를 이용해서 성능을 개선할 생각이다.
ㄱㄱ
korean 분석기를 사용하는 인덱스를 만들자.
PostDocument에서 analyzer = "korean"을 지정했기 때문임.


엘라스틱 서치 컨테이너를 재시작하자.
db에 저장되어 있는 데이터들을 엘라스틱 서치로 보내면 시간이 9시간이 더해져서 나오게 된다.
그 이유는 엘라스틱 서치는 UTC+9 시간대이기 때문에 KST로 저장 시 9시간이 보정값으로 자동으로 더해준다.

그래서 나는 DB에서 꺼낸 데이터의 시간 값을 Instant로 변환하여 9시간을 더해주지 않도록 하였다.


해결 ~
glemoa-reader 서비스에서 db로 기존에 조회쿼리 날리던 것을 엘라스틱 서치로 쿼리를 날리도록 변경하였다.

현재 db 에서 조회하는 로직으로는 최소 293ms

최대 974ms
이제 엘라스틱 서치에서 조회하는 식으로 변경해보면 어떻게 될까 확인을 해보자.

최소 89ms

최대 280ms
약 4배 정도 더 빨리 응답을 받았고 성능 개선에 완료하였다 !!
'글모아' 카테고리의 다른 글
| 엘라스틱 서치 analyzer와 searchAnalyzer (0) | 2025.11.17 |
|---|---|
| 엘라스틱 서치 인덱스 설정 파일 설명 (0) | 2025.11.17 |
| 글모아 프로젝트 개선점 1 (1) | 2025.10.14 |
| 글모아 post 테이블 세컨더리 인덱스 -> 클러스터드 인덱스 접근을 위한 서브쿼리 설정 (0) | 2025.10.12 |
| redis 읽기 전용(replica) 모드에서 쓰기 모드(master)로 전환하기 (0) | 2025.10.11 |