Django会自动为外键列生成索引吗?

Gab*_*iMe 58 django-models

Django是否自动生成外键索引,还是只依赖于底层数据库策略?

Luk*_*ger 87

Django自动为所有models.ForeignKey列创建索引.

来自Django文档:

在数据库上自动创建数据库索引ForeignKey.您可以通过设置db_index为禁用此功能False.如果要为一致性而不是连接创建外键,或者如果要创建替代索引(如部分或多列索引),则可能希望避免索引的开销.

  • @LukeSneeringer,我不确定你给出的命令是否用于显示索引,但它不再存在.相反,自己运行索引的`./manage.py sqlindexes appname`. (7认同)
  • 也可以在ForeignKey上禁用索引的创建:https://code.djangoproject.com/ticket/13730 (4认同)
  • @GabiMe我刚刚添加了Django文档的源代码. (2认同)
  • @JesseBeder:`./manage.py sqlindexes appname` 在最近的 Django 版本中不再起作用。 (2认同)