Может ли кто-нибудь рекомендовать лучший SQL-запрос или подход, чтобы я мог INSERT INTO
таблицу ссылок быстрее? Мой текущий подход замедляется по мере увеличения таблиц, и моя проблема связана с таблицей INSERT
.Как оптимизировать INSERT в таблице ссылок
У меня есть две таблицы, соединенные таблицей ссылок. Схема ниже:
CREATE TABLE table1
(id INT PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
field1 VARCHAR(40))
CREATE TABLE table2
(id INT PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
field1 VARCHAR(100),
field2 INT,
field3 VARCHAR(40))
CREATE TABLE linkTable
(id INT PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
field1 INT REFERENCES table1(id),
field2 INT REFERENCES table2(id))
Потому что я пытаюсь пакетных вставок, я в настоящее время проверки, что я не добавлять повторяющиеся значения в таблице ссылок с этим длинным запросом:
INSERT INTO linktable(field1,field2)
SELECT table1Id, table2Id FROM
(SELECT table1.id table1Id, table2.id table2Id FROM table1,table2
WHERE table1.name=? AND table2.name=?) tmp
WHERE NOT EXISTS
(SELECT linktable.field1 FROM linktable tmp1 WHERE
tmp1.field1=tmp.table1id AND tmp1.field2=tmp.table2id)