해당 쿼리들의 실행 계획을 Meta에서 확인해 보겠습니다.
Meta에서는 쿼리가 상당히 빠르게 실행되지만, 성능이 낮은 데이터베이스에서는 성능이 크게 저하될 수 있다는 점을 이해할 수 있습니다. 우리는 ActiveRecord를 사용하고 있으며 코드 자체는 꽤 깔끔하지만, 생성되는 SQL은 다소 지저분합니다.
SQL을 수동으로 작성하면 기존 인덱스를 활용하여 쿼리를 크게 최적화할 수 있습니다:
최적화 전
최적화 후
최적화된 쿼리에서는 해당 사용자의 게시글만 가져오도록 하여, 조인(join)이 너무 늦게 발생하는 게시글 루프를 제한하고 있습니다.
따라서 인덱스 오버헤드를 추가하지 않고도 더 나은 성능을 얻을 수 있다고 생각합니다.

