gpt4 book ai didi

mysql - index_together 的顺序在 Django 模型中是否重要?

转载 作者:可可西里 更新时间:2023-11-01 06:36:42 26 4
gpt4 key购买 nike

使用 index_together 元属性定义模型时,列的顺序重要吗?

换句话说,两者之间有区别吗

Class myModel(models.Model):
name = models.CharField(max_length=100)
address = models.CharField(max_length=100)
favorite_color = models.CharField(max_length=20)

class Meta:
index_together = ('name', 'address', 'favorite_color')

对比

Class myModel(models.Model):
name = models.CharField(max_length=100)
address = models.CharField(max_length=100)
favorite_color = models.CharField(max_length=20)

class Meta:
index_together = ('favorite_color', 'name', 'address')

我之所以这么问,是因为我在查看表的结构时注意到,键中的每一列都有一个“键中的索引”属性。 MySQL/PostgreSQL 是否期望按该顺序查询列?

顺便说一句,将列一起索引与单独索引之间有很大区别吗?

最佳答案

index_together 的顺序解释了创建索引的“路径”。您可以从左到右查询以从索引中获益。

因此,对于您的第一个 index_together:

    index_together = ('name', 'address', 'favorite_color')

如果您的第一个过滤器是 name,则使用索引。如果第一个是 name,第二个是 address,则也使用索引。

但是如果你按address过滤,然后是nameaddressfavorite_color索引不能用过的。

关于mysql - index_together 的顺序在 Django 模型中是否重要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21753699/

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