Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 如何通过索引而不是过滤器搜索日期列?_Database_Postgresql_Indexing_Query Optimization - Fatal编程技术网

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

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,三)上创建一个复合索引 索引按字典顺序排序,首先根据第一列的值

三是日期列,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,三)
上创建一个复合索引

索引按字典顺序排序,首先根据第一列的值排序,然后根据相等的值排序,再根据第二列的值排序,如电话簿:先是姓氏,然后是姓名

从电话簿中很容易找到从约翰到玛丽的所有史密斯,但要找到从琼斯到史密斯的所有约翰却不那么容易,因为这些条目是按姓氏排序的


与您的查询相同:如果您首先在
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);