성능 튜닝3 [PostgreSQL] 단일 테이블 컬럼을 최대한 활용하기 PostgreSQL 14 에서 진행되었다.간혹 쿼리들을 보면 단일 테이블 (from 테이블)의 컬럼으로 모든 조회 조건이 완성 가능한데, join 테이블 의 조건을 함께 사용하여 성능 저하를 일으키는 경우가 종종 있다.데이터가 몇개 없을때는 큰 차이를 못 느끼지만, 수십만건 이상이 적재된 여러 테이블을 중첩 Join 할 경우 큰 차이가 느껴지게 된다.이를 비교해보자.문제아래의 쿼리는 review 테이블과 연관된 여러 테이블의 정보를 모으고, 이를 페이징 처리하여 제공해야하는 기능이다.select *from "review" as reviewleft join "users" as "user" on review."user_id" = "user"."id"left join "courses" as course on .. 2024. 6. 18. 3. AWS Beanstalk을 이용한 성능 튜닝 시리즈 - Nginx 튜닝 지난 시간에 보셨던것처럼 AWS Elastic Beanstalk은 기본적으로 Nginx을 갖고 있습니다. 이 내용을 모르시는 분들 입장에선 성능 튜닝시 Nginx 부분은 놓치실 수 있는데요. 그래서 이번 시간에는 Nginx와 Spring Boot 간의 성능 튜닝 과정을 진행해보겠습니다. 모든 코드는 Github에 있습니다. 3-1. 여전히 많은 TIME_WAIT 소켓 지난 시간에 net.ipv4.tcp_tw_reuse 값을 수정하여 로컬 포트 고갈 문제를 해결하였습니다! 그리고 수정된 버전으로 다시 한번 성능 테스트를 진행했는데요. Vuser 50으로 맞추고 테스트를 하니 TPS가 4700까지 올라갔습니다! 중간에 DB Connection이 부족한것이 발견되어 DB Connection Pool Size와.. 2018. 7. 23. [mysql] 인덱스 정리 및 팁 MySQL 인덱스에 관해 정리를 하였습니다. MySQL을 잘 알아서 정리를 한것이 아니라, 잘 알고 싶어서 정리한 것이라 오류가 있을수도 있습니다. 1. 인덱스란? 인덱스 == 정렬 인덱스는 결국 지정한 컬럼들을 기준으로 메모리 영역에 일종의 목차를 생성하는 것입니다. insert, update, delete (Command)의 성능을 희생하고 대신 select (Query)의 성능을 향상시킵니다. 여기서 주의하실 것은 update, delete 행위가 느린것이지, update, delete를 하기 위해 해당 데이터를 조회하는것은 인덱스가 있으면 빠르게 조회가 됩니다. 인덱스가 없는 컬럼을 조건으로 update, delete를 하게 되면 굉장히 느려 많은 양의 데이터를 삭제 해야하는 상황에선 인덱스로 지.. 2017. 11. 5. 이전 1 다음