2013-02-09 6 views
30

장고 코딩 스타일에 대한 책을 읽었으며 여기에서 다루는 내용은 db_index = True입니다. Django를 사용한 이후로이 함수가 무엇을 할 수 있는지 모르기 때문에 결코이 함수를 사용하지 않을 것입니다.인덱스 추가 (db_index = True)

인덱스 추가를 고려해야 할 때가 제 질문은 무엇입니까?

답변

73

이것은 실제로 장고와 관련이 없습니다. 데이터베이스와 관련이 있습니다. 해당 열의 검색 속도를 높이려면 열에 인덱스를 추가하십시오.

일반적으로 기본 키만 데이터베이스에 의해 인덱싱됩니다. 즉, 기본 키를 사용하는 조회가 최적화됩니다.

보조 열에서 많은 조회를 수행하는 경우 속도를 높이려면 해당 열에 색인을 추가하는 것이 좋습니다.

대부분의 스케일 문제와 마찬가지로 통계적으로 많은 행 (10,000은 크지 않음)이있는 경우에만 적용됩니다.

또한 삽입 할 때마다 색인을 업데이트해야합니다. 색인을 추가하는 열에주의하십시오.

항상 측정 할 수있는 것을 최적화 할 수 있습니다. 따라서 EXPLAIN 문과 데이터베이스 로그 (특히 느린 쿼리 로그)를 사용하여 인덱스를 유용하게 사용할 수있는 곳을 찾으십시오.

+3

도움이 될 수 있습니다. (많이) https://github.com/django-debug-toolbar/django-debug-toolbar#django-debug-toolbar – maazza

+0

색인을 사용하여 정렬 속도를 높일 수도 있습니다. [이 기사] (http://sqlmag.com/database-performance-tuning/indexing-sort-performance)는 MS SQL Server에 관한 것이지만 모든 데이터베이스에서 동일하게 적용됩니다. – Nick

관련 문제