Mam dwie tabele, jedną połączoną z Kluczem Podstawowym drugiej. W tym momencie wstawiam do tabeli A, otrzymam LAST_INSERT_ID, a następnie wstawiam do tabeli B.Używanie MySQL do wielokrotnego INSERT na połączonych tabelach
Ale mam setki rekordów do wstawienia i chcę je przyspieszyć.
W MySQL można:
INSERT INTO table_a (v1, v2, c3) VALUE (0, 1, 2);
INSERT INTO table_a (v1, v2, v3) VALUE (4, 5, 6);
itp, lub
INSERT INTO table_a (v1, v2, v3) VALUE (0, 1, 2), (4, 5, 6), etc
dodać wiele wpisów szybciej - ale tylko na jednym stole.
Oczywiście ten drugi jest znacznie szybszy. Zastanawiam się, czy możliwe było odtworzenie tego zachowania dla mojego przykładu za pomocą dwóch połączonych tabel przy użyciu procedury składowanej i czy miałoby to równie dramatyczną poprawę wydajności:
coś takiego: wywołanie special_insert ((0, 1, 2), (4, 5, 6), itp.); lub podobne.
nie mam zapisanego doświadczenia wewnętrznego, więc jestem połowów pomysłów na jakim kierunku postępuje.
SP pozwoli na symulację wielostolikowego wkładu monolitycznego. Pytanie brzmiałoby: jak można oddzielić tabelę A od danych z tabeli B na liście parametrów. –
Cóż, pisząc własną procedurę przechowywaną, wiedziałbym, co oznaczałyby dane na liście parametrów ... Czy SP byłby znacznie szybszy od poszczególnych WKŁADÓW? –
Nie wiem o niczym. Musiałbyś porównać obydwie metody, ale na końcu wciąż robisz dwie wstawki i nie możesz ominąć tego faktu. –