Generiert Django automatisch Indizes für Fremdschlüssel oder hängt dies nur von der zugrunde liegenden DB-Richtlinie ab?
Antworten:
Django erstellt automatisch einen Index für alle models.ForeignKey
Spalten.
Aus der Django-Dokumentation :
Ein Datenbankindex wird automatisch auf dem erstellt
ForeignKey
. Sie können dies , indem Sie deaktivierendb_index
zuFalse
. Möglicherweise möchten Sie den Overhead eines Index vermeiden, wenn Sie einen Fremdschlüssel aus Gründen der Konsistenz anstelle von Verknüpfungen erstellen oder wenn Sie einen alternativen Index wie einen Teil- oder Mehrspaltenindex erstellen.
./manage.py sql appname
Sie ausführen, werden die SQL-Anweisungen für die Indexerstellung angezeigt. Sie kommen direkt nach der SQL für die Erstellung der letzten benötigten Tabelle.
./manage.py sqlindexes appname
die Indizes selbst aus.
./manage.py sqlindexes appname
funktioniert in den letzten Django-Versionen nicht mehr.
db_index
Parameter in ForeignKey ab, der standardmäßig True ist.