Использование Mysql для выполнения нескольких операций INSERT для связанных таблиц

У меня есть две таблицы, одна из которых связана к первичному ключу другого. В данный момент я ВСТАВЛЯЮ в таблицу A, получаю ПОСЛЕДНИЙ_INSERT_ID, а затем ВСТАВЛЯЮ в таблицу B.

Но мне нужно вставить сотни записей, и я хочу ускорить процесс.

В Mysql вы можете либо:

INSERT INTO table_a (v1, v2, c3) VALUE (0, 1, 2);

INSERT INTO table_a (v1, v2, v3) VALUE (4, 5, 6); 

и т. д., либо

INSERT INTO table_a (v1, v2, v3) VALUE (0, 1, 2), (4, 5, 6), etcдля более быстрого добавления нескольких записей -, но только для одной таблицы.

Конечно, последний намного быстрее. Мне было интересно, можно ли воспроизвести это поведение для моего примера с двумя связанными таблицами с помощью хранимой процедуры, и будет ли это иметь такое же резкое улучшение производительности:

что-то вроде :call special_insert((0, 1, 2 ), (4, 5, 6 )и т. д. ); или похожие.

У меня нет опыта работы с хранимыми процедурами, поэтому я ищу идеи, в каком направлении двигаться дальше.

6
задан Michael Franze 9 April 2012 в 15:19
поделиться