Чи генерує Django автоматично індекси для зовнішніх ключів, чи це просто залежить від базової політики БД?
Відповіді:
Django автоматично створює індекс для всіх models.ForeignKeyстовпців.
Індекс бази даних автоматично створюється на
ForeignKey. Ви можете вимкнути це, встановившиdb_indexнаFalse. Ви можете уникнути накладних витрат на індекс, якщо ви створюєте зовнішній ключ для узгодженості, а не об'єднання, або якщо ви будете створювати альтернативний індекс, такий як частковий або багаторазовий індекс стовпця.
./manage.py sql appnameі ви побачите оператори SQL для створення індексу. Вони з’являються відразу після SQL для створення останньої необхідної таблиці.
./manage.py sqlindexes appnameза індексами самі.
./manage.py sqlindexes appnameвже не працює в останніх версіях Django.
db_indexпараметра у ForeignKey, який за замовчуванням має значення True.