- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我读过 django 会自动为所有外键创建 db_index。但是,db_index 是否也提高了反向查找的性能?
例如,如果 B 有 A 的外键并且我使用 a.b_set.all(),我是否享受数据库索引带来的性能提升?
如果没有,有没有办法使用 db 索引使外键反向查找更快?
谢谢,
最佳答案
假设您有一个简单的模型结构:
class Author(models.Model):
name = models.CharField(max_length=70)
email = models.EmailField()
class Book(models.Model):
title = models.CharField(max_length=100)
author = models.ForeignKey(Author)
正如您提到的 Book.author
已经有了索引,因为它是一个 ForeignKey
正在查询:
author_books = Book.objects.filter(author=a)
或
author_books = a.book_set.all()
产生完全相同的查询,因此 book.author
索引将在两种情况下使用。
关于python - 用于外键反向查找的django db_index,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38151773/
我想在我的模型中向现有字段添加一些 db_index。我刚刚添加了 db_index=True到模型。 我在想我需要运行 python manage.py migrate将它们应用到数据库中。我的问题
目前,我有3个模型,A、B、C C 有 B 的外键B 有 A 的外键 class C(models.Model): name = models.CharField(max_length=50,
我读过 django 会自动为所有外键创建 db_index。但是,db_index 是否也提高了反向查找的性能? 例如,如果 B 有 A 的外键并且我使用 a.b_set.all(),我是否享受数据
我想添加一个 multi-column index to a postgres数据库。我有一个非阻塞 SQL 命令来执行此操作,如下所示: CREATE INDEX CONCURRENTLY shop
我正在阅读一本关于 Django 编码风格的书,他们讨论的一件事是 db_index=True。自从我开始使用 Django 以来,我从未使用过这个功能,因为我不太确定它的作用。 所以我的问题是,什么
我有一个 Django 模型,我想在创建表后将 db_index=True 添加到字段。 我发现 Django 不会创建迁移,因此不会创建索引。如果表不存在并且是第一次创建,Django 会创建索引。
在我的 Django 模型中,在字段定义中通过 db_index=True 创建索引时,不会创建索引。仅当我在类 Meta 中创建 class Agreement(UUIDPrimaryKey):
我有一个抽象模型: class ChronoModel(models.Model): created = models.DateTimeField( u"Create time
我的模型: from django.db import models from django.contrib.postgres.fields import JSONField class MyMode
当我们应该定义 db_index=True在模型领域? 我正在尝试优化应用程序并想了解有关 db_index 的更多信息我们应该在什么条件下使用它? 文档说在模型字段上使用 db_index=True
class Comments(models.Model): content = models.ForeignKey(Content) 我需要将 db_index 添加到“内容”吗?还是会因为它
假设有表 UserProfile: class UserProfile(models.Model): name = models.CharField(max_length=30, db_ind
突然间,我的页面在数据库中有如此多的用户,以至于由于用户数量非常多,auth_user 表上的电子邮件过滤器几乎失败了。 由于表格是内置的,我需要将 db_index=True 添加到该表格的列中,知
模型上的一个字段,foo = models.ForeignKey(Foo) 会自动为该列添加一个数据库索引,以加快查找速度。这很好,但是 Django 的文档没有说明模型元的 unique_toget
Django 的示例代码位于 https://docs.djangoproject.com/es/1.9/ref/contrib/contenttypes/ content_type = models
我是一名优秀的程序员,十分优秀!