Database 如何通过索引而不是过滤器搜索日期列?
三是日期列,oscar_alpha是整数 我从博士后那里得到这个解释。在16行上,我想阻止在筛选条件下查找对表的访问Database 如何通过索引而不是过滤器搜索日期列?,database,postgresql,indexing,query-optimization,Database,Postgresql,Indexing,Query Optimization,三是日期列,oscar_alpha是整数 我从博士后那里得到这个解释。在16行上,我想阻止在筛选条件下查找对表的访问 Filter: ((three >= '15.04.2010 00:00'::date) AND (three <= '15.04.2016 00:00'::date) AND (oscar_alpha = 341)). 但他们没有使用 是的,有些数据是匿名的 您需要按照该顺序在(oscar_alpha,三)上创建一个复合索引 索引按字典顺序排序,首先根据第一列的值
Filter: ((three >= '15.04.2010 00:00'::date) AND (three <= '15.04.2016 00:00'::date) AND (oscar_alpha = 341)).
但他们没有使用
是的,有些数据是匿名的 您需要按照该顺序在
(oscar_alpha,三)
上创建一个复合索引
索引按字典顺序排序,首先根据第一列的值排序,然后根据相等的值排序,再根据第二列的值排序,如电话簿:先是姓氏,然后是姓名
从电话簿中很容易找到从约翰到玛丽的所有史密斯,但要找到从琼斯到史密斯的所有约翰却不那么容易,因为这些条目是按姓氏排序的
与您的查询相同:如果您首先在
oscar_alpha
上排序,则所有具有相同oscar_alpha
的值都将按3
顺序排序,并且可以对它们应用范围条件。我在(oscar_alpha,3)上添加了一个复合索引,但它不是workiing@Usm:哦,我明白了。你想要一个魁北克七号,奥斯卡阿尔法,三号的综合索引@Usm:不幸的是,如果不查看数据和查询,我就无能为力。
create index index1 on table_name (three , oscar_alpha);
create index index2 on table_name (three);
create index index3 on table_name (oscar_alpha);