毎時何千回もプッシュされるmany2manyテーブルがDBにあります。のは、それがどのように見えるとしましょう:多対多テーブルに行を挿入しますが、FK参照/サブクエリは避けてください
+-----------------------+
| pageNotes |
+-----+--------+--------+
| id | pageid | noteid |
+-----+--------+--------+
| 1 | 37583 | 385839 |
| 2 | 37583 | 385840 |
| ... | ... | ... |
+-----+--------+--------+
私はテーブルを更新したい場合は、私だけ(pageNotesテーブルにそのFKとしてpageidにを持つテーブルで、「ページ」で、)ページのURLを持っています。私は本当に私のコードでPKの検索をするために何万ものレコードをバッファリングすることを避けたいので、これを達成するためにサブクエリーを除いて別の方法があります。
は現在、クエリは次のようになります。ページが存在しない場合は、クエリが失敗するため
INSERT INTO
`pageNotes ` (id,pageid,noteid)
VALUES ('',
(SELECT id FROM pages WHERE url='http://www.test.com/index.html')
,385841);
これは、もちろん使用可能ではありません。私が探しているのは、pkをフェッチするか、FKテーブルに行を挿入する方法です。あなたのようにクエリを簡素化することができます
、あなたは外部キーを得ることなく、外部キーを持つレコードを挿入するようにしたいですか?最適化したいクエリを使用していますか?それは私たちが質問をよく理解する助けになるかもしれません。 –
基本的には、はい。上記の質問 – joostdevries