LINUX.ORG.RU

Помощь в изменении структуры БД

 


0

1

Использую 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 связей, которым указать идентификаторы в виде массива.

Может кто-то сталкивался с похожей проблемой?