gpt4 book ai didi

Django 模型字段索引

转载 作者:行者123 更新时间:2023-12-03 01:39:22 25 4
gpt4 key购买 nike

我只知道索引很有帮助,而且查询速度更快。

下面两个有什么区别?

1.

class Meta:
indexes = [
models.Index(fields=['last_name', 'first_name',]),
models.Index(fields=['-date_of_birth',]),
]

2.

class Meta:
indexes = [
models.Index(fields=['first_name',]),
models.Index(fields=['last_name',]),
models.Index(fields=['-date_of_birth',]),
]

最佳答案

示例 1:

第一个示例在 last_namefirst_name 字段上创建单个索引。

indexes = [
models.Index(fields=['last_name', 'first_name',]),
]

如果您同时搜索姓氏和名字,或者单独搜索姓氏(因为 last_name 是索引中的第一个字段),这将很有用。

MyModel.objects.filter(last_name=last_name, first_name=first_name)
MyModel.objects.filter(last_name=last_name)

但是,它对于单独搜索 first_name 没有用(因为 first_name 不是索引中的第一个字段)。

MyModel.objects.filter(first_name=first_name)  # not useful

示例 2:

第二个示例为 first_name 字段创建一个索引,并为 last_name 字段创建一个单独的索引。

indexes = [
models.Index(fields=['first_name',]),
models.Index(fields=['last_name',]),
]

如果您根据代码中的名字或姓氏进行查找,这将很有用

MyModel.objects.filter(first_name=search)
MyModel.objects.filter(last_name=search)

关于Django 模型字段索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45328826/

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