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
Postgresql 如何使用索引有效地查找空字段_Postgresql - Fatal编程技术网

Postgresql 如何使用索引有效地查找空字段

Postgresql 如何使用索引有效地查找空字段,postgresql,Postgresql,我有一个查询,试图从数百万条记录中找到一个空字段。只有一两个 查询如下所示: SELECT * FROM “table” WHERE “id” = $1 AND “end_time” IS NULL ORDER BY “start_time” DESC LIMIT 1 如何使此查询更高效(例如使用数据库中的索引)。尝试使用部分索引,例如: create index iname on "table" (id, start_time) where end_time is null;

我有一个查询,试图从数百万条记录中找到一个空字段。只有一两个

查询如下所示:

SELECT  * 
FROM “table” 
WHERE “id” = $1 
AND “end_time” IS NULL  
ORDER BY “start_time” DESC LIMIT 1

如何使此查询更高效(例如使用数据库中的索引)。

尝试使用部分索引,例如:

create index iname on "table" (id, start_time) where end_time is null;

尝试一个部分索引我相信一个带有
id,start\u time
的部分综合索引也会更好地帮助排序-带有start\u time!是的,这很有道理——谢谢。再说一遍:)如果OP在结束时间中有几个空值-排序开始时间不会花两行的时间,这就是我最后要做的。工作得很有魅力