0
もっと良いSQLステートメントやアプローチをお勧めしますか?INSERT INTO
リンクテーブルの方が速いですか?私の現在のアプローチは、テーブルが大きくなり、リンクテーブルINSERT
クエリが問題になると遅くなります。リンクテーブルへのINSERTの最適化方法
私は2つのテーブルをリンクテーブルで結合しました。スキーマは以下の通りです:
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)