这个问题已经在这里有了答案 :
PostgreSQL:索引时间戳的一天部分 (2个答案)
5年前关闭。
我正在创建一个汇总表,以汇总给定一天中的所有事件。
INSERT INTO graph_6(
day,
event_type,
(SELECT COUNT(*) FROM event e
WHERE event_type = e.event_type
AND creation_time::DATE = sq.day)
FROM event_type
CROSS JOIN
(SELECT generate_series(
(SELECT '2014-01-01'::DATE),
(SELECT '2014-01-02'::DATE),
'1 day') as day) sq;
该creation_time
列已建立索引:
CREATE INDEX event_creation_time_date_idx ON event USING BTREE(creation_time);
但是,即使只查询两天的数据以及少数事件,查询也会运行相当长的时间(2014年1月1-2日)。
在EXPLAIN
上查询是相当严峻-它运行一个顺序扫描的event
表,而不是利用指数都:
-> Seq Scan on event e_1 (cost=0.00..12557.39 rows=531 width=38)
Filter: ... AND ((creation_time)::date = (generate_series(($12)::timestamp with time zone, ($13)::timestamp with time zone, '1 day'::interval))))
我认为这是因为我们比较了强制转换值-creation_time::DATE
而不是creation_time
。我尝试索引演员表:
CREATE INDEX event_creation_time_date_idx ON event USING BTREE(creation_time::DATE);
但是有一个错误:
ERROR: syntax error at or near "::"
有没有一种方法可以在转换为DATE的时区列上利用PostgreSQL索引?
索引声明中的表达式应放在其他方括号中,请尝试:
CREATE INDEX event_creation_time_date_idx ON event ((creation_time::DATE));
本文向大家介绍postgresql 创建一个纯JSON表,包括了postgresql 创建一个纯JSON表的使用技巧和注意事项,需要的朋友参考一下 示例 要创建纯JSON表,您需要提供一个类型为的字段JSONB: 您还应该创建一个基本索引: 此时,您可以将数据插入表中并进行有效查询。
列出索引 为何无法显示索引的值? 如何创建一个可以显示值出来的索引呢?
问题内容: 我正在使用官方elasticsearch npm。在我的节点应用程序中,我正在使用该客户端创建索引,如下所示 我需要为上述索引放入映射,因此,我必须先创建一个空索引(无数据索引),然后必须执行放置映射,然后将数据放入索引。 因此,我必须创建一个空索引,但是在正式的Elasticsearch客户端中,上述方法(create)是用“ ”方法编写的,因此它需要一个主体。 为此,我必须如上所述
CreateIndexes 根据struct中的tag来创建索引 CreateUniques 根据struct中的tag来创建唯一索引
问题内容: 我有一个名为的表,我想对它们进行排序,以表最填写的顺序。每个列都是JSONB列或TEXT列。我并不需要很确定,因此通常我按以下顺序订购: 但是,这很慢,因此我想创建一个索引。但是,这不起作用: 也没有 不能说我很惊讶。声明此索引的正确方法是什么? 问题答案: 要测量文本表示形式中行的大小,您可以将整个行都转换为文本,这比连接单个列要快得多: 但是索引中的此表达式存在3(或4)个问题: