gpt4 book ai didi

Django 模型 : are there reasons to make searched field with db_index?

转载 作者:行者123 更新时间:2023-12-02 01:46:35 24 4
gpt4 key购买 nike

假设有表 UserProfile:

class UserProfile(models.Model):
name = models.CharField(max_length=30, db_index=True) # db_index 1
email = models.EmailField(unique=True, db_index=True) # db_index 2
password = models.CharField(max_length=60)
birthday = models.DateField(db_index=True) # db_index 3
about = models.TextField(blank=True)
created = models.DateField(auto_now_add=True)
lang = models.CharField(max_length=1, choices=LANG, blank=True)

网站上有一个搜索表单,其中包含以下过滤器:姓名、年龄、电子邮件。

那么,在这些过滤器中使用 db_index 真的有理由吗?

谢谢!

最佳答案

是的,当然。 Django 使用数据库,因此如果您在这些字段上搜索,则查找将受益于数据库索引。

请注意,一旦您创建了表,即使您在将 db_index 添加到定义后再次运行它,syncdb 也不会添加索引 - 您需要直接在数据库shell中修改表定义,或者使用South等工具。

请记住,与大多数规模问题一样,这些问题仅适用于统计数据量较大的行(10,000 行不算大)。

此外,每次执行插入时,都需要更新索引。因此要小心添加索引的列。

关于Django 模型 : are there reasons to make searched field with db_index?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8538591/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com