首页 > 解决方案 > 我们什么时候应该在 Django 中使用 db_index=True?

问题描述

我们什么时候应该db_index=True在模型字段上定义?

我正在尝试优化应用程序并想了解更多关于db_index我们应该在哪些条件下使用它?

文档说,在模型字段上使用 db_index=True 可以加快查找速度,但在存储和内存方面略有缺点。

我们应该db_index=True只在那些具有唯一值的字段上使用,比如主字段id吗?如果我们为那些不唯一且包含重复数据的字段启用索引会发生什么。

标签: djangodjango-modelsdjango-rest-frameworkdjango-forms

解决方案


我会说,db_index=True当您有一个独特的字段可以进行更有用的查找时,您应该使用它。

例如,如果您的表customers包含许多记录,users则它们每个都有自己独特的user_id. 每个user_id人都是唯一的,并且必须索引该字段以发现唯一用户比说他们的first_nameor更常见last_name。实际上这也可以,但由于它们不是唯一的,您可能会从查询中收到多个结果,这可能不如使用引用他们的 id 有用。

在这里查看以了解有关索引的更多信息


推荐阅读