SELECT * FROM public.data
data列可以具有“大”值(例如,g~250 e.g)
的结果
我不知道这里的瓶颈是什么它似乎不应该花那么多时间只取620行。也许数据列是减慢一切的原因?
我能做些什么让这个查询更快吗?我试过用索引,但没有成功。如您所知,我不是DB专家,也许有一个低挂水果解决方案,因为这是一个非常基本的查询。
谢谢你的帮助
这是explain (analyze, buffers) select * from public.data;的输出
"Seq Scan on data (cost=0.00..7.86 rows=619 width=34) (actual time=0.007..0.083 rows=620 loops=1)"
" Buffers: shared hit=6"
"Planning Time: 0.171 ms"
"Execution Time: 0.138 ms"下面是这个表的create table输出:
-- Table: public.data
-- DROP TABLE IF EXISTS public.data;
CREATE TABLE IF NOT EXISTS public.data
(
id integer NOT NULL DEFAULT nextval('data_id_seq'::regclass),
data json NOT NULL,
"timestamp" timestamp with time zone NOT NULL,
version integer NOT NULL,
CONSTRAINT data_pkey PRIMARY KEY (id)
)
TABLESPACE pg_default;
ALTER TABLE IF EXISTS public.data
OWNER to vxpxchlkkyyvaa;发布于 2022-06-06 12:56:25
我发现这个问题只发生在当地。
我假设我的Heroku dyno和我的PG位于同一个AWS区域,并且具有某种优先级访问权限,这使得通信速度非常快。实际上,在我的服务器上,进行查询所需的时间不到一秒钟,而当我在本地(使用pgAdmin4或以编程方式)进行查询时,则需要5米左右。
https://dba.stackexchange.com/questions/312958
复制相似问题