오늘은 회사에서 계속해서 올라오던 slow query에 대해 성능 최적화를 수행한 내용을 바탕으로 해당 포스팅을 작성한다. soft delete를 사용함에 있어서 쿼리를 주의 깊게 작성해야 한다는 사실을 알고있었지만 이번 기회를 계기로 좀 더 깨달았던 것 같다.문제의 구성은 이러했다. 원래의 문제가 됐던 쿼리select count(*) from tables where 조건1 = ? and user_id = ? and deleted_at is null 유저별로 카운팅을 하지만 데이터에 맞는 카운팅 개수가 4천개를 넘어서는 순간부터 점점 응답이 느려져 4초 이상으로 가서 alert 채널에 공유가 되었다. 일단 더미데이터를 넣고 비슷하게 구성해보았다.create table test_table( id ..