Django 쿼리 최적화 방법들

백앤드 API의 성능을 개선하고 싶을 때 가장 만만한 곳이 데이터베이스 쿼리이다. Django에서 쿼리 최적화를 할 수 있는 부분을 정리해보자. Database 최적화 인덱스 인덱스를 추가하는 것은 가장 우선적으로 고려해볼만한 사항이다. Meta.indexes 또는 Field.db_index 를 사용하여 인덱스를 추가하고 filter, exclude, order_by 등을 사용하여 자주 쿼리하는 필드에 인덱스를 추가하면 조회 속도를 높일 수 있다. 일반적으로 인덱스를 속도가 향상되는 것은 맞지만 항상 좋은 것은 아니다. 일단 인덱스를 저장하기 위해 데이터베이스에 추가 저장 공간이 필요하며 많은 인덱스를 생성할 경우에는 부담이 될 수도 있다.그리고 데이터를 삽입, 업데이트, 삭제 할 때는 인덱스도 함께 업데이트 해줘야하므로, 작업의 성능이 저하될 수도 있다. 그래서 처음부터 바로 인덱스를 도입하는 것보다 인덱스 없이 쿼리하다가 특정 쿼리가 자주 사용되거나, 읽기 작업 위주로만 사용되는 테이블이 있다면 그 때 인덱스를 도입하는 것을 권장한다. ...

October 11, 2020 · 14 min