Определение моей таблицы
CREATE TABLE public.state
(
id integer NOT NULL,
state character varying(50),
district character varying(50),
block character varying(50),
panchayat character varying(50),
village character varying(50),
habitation character varying(50),
CONSTRAINT state_pkey PRIMARY KEY (id)
)
WITH (
OIDS=FALSE
);
ALTER TABLE public.state
OWNER TO postgres;
CREATE INDEX state_allx
ON public.state
USING btree
(id, state COLLATE pg_catalog."default", district COLLATE pg_catalog."default", block COLLATE pg_catalog."default", panchayat COLLATE pg_catalog."default", village COLLATE pg_catalog."default", habitation COLLATE pg_catalog."default");
CREATE INDEX state_habitationx
ON public.state
USING btree
(id, habitation COLLATE pg_catalog."default");
CREATE INDEX state_idx
ON public.state
USING btree
(id);
В таблице 80359 строк.
select * from state;
Приведенный выше оператор выбора занимает 5,8 секунды, чтобы вернуть результаты.
Total query runtime: 5.8 secs
80359 rows retrieved.
Объясните, возвращая следующий результат.
EXPLAIN select * from state;
"Seq Scan on state (cost=0.00..1872.59 rows=80359 width=75)"
Подробное ОБЪЯСНЕНИЕ
EXPLAIN (analyze, buffers, format text) select * from state ;
"Seq Scan on state (cost=0.00..1872.59 rows=80359 width=712) (actual time=0.022..13.700 rows=80359 loops=1)"
" Buffers: shared hit=1069"
"Planning Time: 0.727 ms"
"Execution Time: 19.810 ms"
Как повысить производительность вышеуказанного запроса.
System
macBook - i7 processor, 16GB RAM.