Django是自动为外键生成索引,还是仅取决于基础数据库策略?
Answers:
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。