gpt4 book ai didi

database - 如何通过索引而不是过滤器搜索日期列?

转载 作者:搜寻专家 更新时间:2023-10-30 23:39:37 29 4
gpt4 key购买 nike

three 是日期列,oscar_alpha 是整数。

我有这个result 来自 Postgres 的解释。在第 16 行,我想阻止访问表以在过滤条件中查找

Filter: ((three >= '15.04.2010 00:00'::date) AND (three <= '15.04.2016 00:00'::date) AND (oscar_alpha = 341)).

我想通过索引检查这个条件。我创建了索引:

create index index1 on table_name (three , oscar_alpha);
create index index2 on table_name (three);
create index index3 on table_name (oscar_alpha);

但他们没有使用。

是的,一些数据是匿名的。

最佳答案

您需要按顺序在 (oscar_alpha, three) 上创建复合索引。

索引按字典顺序排序,首先是第一列的值,然后是相等的值,然后是第二列的值,依此类推,就像电话簿:先是姓氏,然后是名字。

从电话簿中获取从 John 到 Mary 的所有 Smiths 很容易,但要获取从 Jones 到 Smith 的所有 Johns 就没那么容易了,因为条目按姓氏在前排序。

与您的查询相同:如果您首先在 oscar_alpha 上排序,则所有具有相同 oscar_alpha 的值都按 three 顺序排列,这是可能的对它们应用范围条件。

关于database - 如何通过索引而不是过滤器搜索日期列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36698092/

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