Использую PostgreSQL 11.
Есть таблица USERS 2 млн. записей
CREATE TABLE USERS (
id INT NOT NULL,
name VARCHAR(30) NOT NULL
);
INSERT INTO USERS
(id, name)
VALUES
(1,'John'),
(2,'Mike'),
(3,'John');
также есть таблица для реализации связей внутри таблицы USERS 15 мнл. записей, по факту храним 2 числа: ид.записи, ид.свзяи.
CREATE TABLE LINKS (
id INT NOT NULL,
id_rec INT NOT NULL,
id_link INT NOT NULL
);
INSERT INTO LINKS
(id, id_rec, id_link)
VALUES
(1,1, 2),
(2,1,3),
(3,1, 4);
Причем связь односторонняя, то есть связей всего 5000, к которым привязаны от 2 записей до 2 млн. записей, Джойнить эти 2 таблицы стало сложно, долго по времени и по ресурсам.
Хочу узнать мнения по оптимальному изменению структуры таблиц, может быть сделать таблицу на 5000 связей, которым указать идентификаторы в виде массива.
Может кто-то сталкивался с похожей проблемой?