我有一个 Django 模型,除其他字段外,还有
time
、station
和 variable
。几乎总是会提供三个字段来完成查询 - 偶尔且非常罕见,我可能只想使用其中之一进行查询。
在这种情况下,索引设置为
models.Index(fields=["station", "time", "variable"])
或 models.Index(fields=["time", "station", "variable"])
或三者的其他排列有关系吗?添加所有可能的排列有用还是无关紧要?添加所有排列是否有任何性能损失或好处?
非常感谢!
Django 根据字段名称的字母顺序生成查询,并且您的索引应与之匹配,以便数据库可以使用该查询。所以你的索引应该是“站”、“时间”和“变量”。如果这会使索引绝望,您可以使用 Django 原始查询,如果您的查询包含主键,它可以返回模型对象