이전 글에서 언급하였듯이 기존 like 연산자에서 성능 개선을 목적으로 Elastic Search로 변경하였으나 정확한 수치화를 하지 못했기 때문에 JMeter 사용법을 알아보았고 이제 정확한 수치화를 진행해보겠다.
각 페이지별(카테고리) search 기능을 별도로 like 연산자로 구현하였으나 통합 검색 기능을 구현하는 것으로 의견이 좁혀졌으며 각각의 카테고리별로 search 기능을 두었을땐 데이터가 많지 않아 like 연산자를 이용하여도 사용에 불편함이 없을정도로 빨랐으나 통합 검색으로 변경 후 데이터량이 급격히 늘어났기 때문에 like 연산자를 이용한 search 기능은 답답하게 느껴졌었다.
그것은 나 뿐만 아니라 사용자 피드백을 받았을 당시에도 마찬가지였고, like 연산자를 이용하여 통합 검색을 구현하였으나 성능이 예상보다 너무 저하되어 있는 상태여서 Elastic Search를 도입하기로 결정하게 되었다.
Elastic Search를 도입하여 체감상 더욱 빨라졌으나 얼마나 빨라진건지, 느낌상으로만 빨라진것인지 알 방법이 없기 때문에 수치화를 해보기로 결정하였다.
아래는 기존의 like 연산자를 이용한 코드이다.
Elastic Search 도입 후 코드
이후 테스트 결과 유의미한 결과가 확인되었다.
1. 관계형 데이터 베이스 LIKE를 이용한 검색
2. Elastic Search를 이용한 검색
Average(평균) 처리 시간이 10621ms -> 6348ms 로 약 67.3%나 개선되었다.
성능 개선율 계산 방법
참고자료 : zetawiki.com/wiki/%EC%84%B1%EB%8A%A5_%EA%B0%9C%EC%84%A0%EC%9C%A8