У меня есть AWS RDS PostgreSQL 12.3 (t3.small, 2 ЦП 2 ГБ ОЗУ). У меня есть эта таблица:
CREATE TABLE public.phones_infos
(
phone_id integer NOT NULL DEFAULT nextval('phones_infos_phone_id_seq'::regclass),
phone character varying(50) COLLATE pg_catalog."default" NOT NULL,
company_id integer,
phone_tested boolean DEFAULT false,
imported_at timestamp with time zone NOT NULL,
CONSTRAINT phones_infos_pkey PRIMARY KEY (phone_id),
CONSTRAINT fk_phones_infos FOREIGN KEY (company_id)
REFERENCES public.companies_infos (id) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE CASCADE
)
В этой таблице ровно 137468 записей, используя:
SELECT count(1) FROM phones_infos;
ОШИБКА: недостаточно памяти для результата запроса возникает с этим простым запросом, когда я использую pgAdmin 4.6:
SELECT * FROM phones_infos;
У меня есть таблицы с более чем 5 миллионами записей, и раньше у меня никогда не было этой проблемы.
EXPLAIN SELECT * FROM phones_infos;
Seq Scan on phones_infos (cost=0.00..2546.68 rows=137468 width=33)
Я прочитал эту статью, чтобы узнать, смогу ли я найти ответы, но к сожалению, как мы видим в метриках: нет старых ожидающих соединений, которые могли бы потреблять память.
Как и предполагалось, размер shared_buffers кажется правильным:
SHOW shared_buffers;
449920kB
Что мне попробовать?
psql
. Я никогда не пользуюсь другим клиентом. - person Laurenz Albe   schedule 30.09.2020