Для ускорения работы запроса был создан частичный индекс по проблемному столбцу, выглядит так:
CREATE INDEX "last_modified_user_notnull_idx" ON "my_table" ("last_modified_user_id") WHERE "last_modified_user_id" IS NOT NULL;
После этого запросы по типу
SELECT * FROM "my_table" where last_mofied_user_id=x;
перестали зависать.
Также в таких ситуациях стоит выполнить
VACUUM ANALYZE "my_table";
Структура таблицCREATE TABLE "user" (
id INT GENERATED ALWAYS AS IDENTITY,
PRIMARY KEY(id)
)
CREATE TABLE "my_table" (
id bigserial INT GENERATED ALWAYS AS IDENTITY
last_modfied_user_id int default NULL,
PRIMARY KEY(id),
CONSTRAINT fk_last_modified_user FOREIGN KEY(last_modfied_user_id) REFERENCES user(id)
)
За помощь в решении выражаю благодарность
Everything_is_bad