Всего в моей таблице семь строк. A SELECT * FROM myTable
занимает более пяти минут. A SELECT * FROM myTable ORDER BY id
занимает 0,2 секунды. id
- первичный ключ.
Если I EXPLAIN ANALYZE
медленный запрос, результат будет следующим:
Seq Scan on myTable (cost=0.00..483960.16 rows=1053 width=2154) (actual time=218691.468..358475.782 rows=7 loops=1)
Planning Time: 0.089 ms
Execution Time: 358475.821 ms
Postgresql версия 11.8.
Я не эксперт по базам данных - есть ли подсказки, с которых я могу начать свой поиск?
// Редактировать
\x; select * from pg_stat_user_tables where relname='myTable';
возвращает:
-[ RECORD 1 ]-------+-----------------------------------------------
relid | 3781321
schemaname | public
relname | myTable
seq_scan | 64538
seq_tup_read | 443186
idx_scan | 5861523
idx_tup_fetch | 5863962
n_tup_ins | 1
n_tup_upd | 5861341
n_tup_del | 0
n_tup_hot_upd | 4692969
n_live_tup | 6
n_dead_tup | 515978
n_mod_since_analyze | 2466207
last_vacuum |
last_autovacuum | 2020-06-06 19:13:08.16919+00
last_analyze |
last_autoanalyze | 2020-06-06 19:13:08.520293+00
vacuum_count | 0
autovacuum_count | 379
analyze_count | 0
autoanalyze_count | 368
Оператор создания таблицы:
CREATE TABLE public.instagram_android_api_instagramloginandroidapi
(
id integer NOT NULL DEFAULT nextval('myTable_id_seq'::regclass),
u character varying(255) COLLATE pg_catalog."default" NOT NULL,
p character varying(255) COLLATE pg_catalog."default" NOT NULL,
e character varying(255) COLLATE pg_catalog."default",
ep character varying(255) COLLATE pg_catalog."default",
s smallint NOT NULL,
i inet,
z character varying(255) COLLATE pg_catalog."default",
s text COLLATE pg_catalog."default",
dtlu timestamp with time zone,
dtll timestamp with time zone,
sct integer NOT NULL,
CONSTRAINT myTable_pkey PRIMARY KEY (id)
)
WITH (
OIDS = FALSE
)
TABLESPACE pg_default;
ALTER TABLE public.myTable
OWNER to xxxxxx;