Tengo dos tablas, una vinculada a la clave principal de la otra. En el momento en que INSERTO en la tabla A, obtengo el LAST_INSERT_ID, y luego INSERT en la tabla B.Usar Mysql para hacer INSERT múltiple en tablas vinculadas
Pero tengo cientos de registros para insertar y quiero acelerar las cosas.
en MySQL puede:
INSERT INTO table_a (v1, v2, c3) VALUE (0, 1, 2);
INSERT INTO table_a (v1, v2, v3) VALUE (4, 5, 6);
etc, o
INSERT INTO table_a (v1, v2, v3) VALUE (0, 1, 2), (4, 5, 6), etc
para agregar varias entradas más rápido - pero sólo por una mesa.
Por supuesto, este último es mucho más rápido. Me preguntaba si era posible replicar este comportamiento para mi ejemplo con dos tablas vinculadas utilizando un Procedimiento almacenado, y si tendría una mejora dramáticamente similar en el rendimiento:
algo así como: llame a special_insert ((0, 1, 2), (4, 5, 6), etc.); o similar.
que no tienen experiencia procedimiento almacenado, así que estoy pescando para las ideas de la dirección de proceder.
El SP le permite simular una inserción monolítica de varias mesas. La pregunta sería ... ¿cómo podría separar los datos de la tabla A de los datos de la tabla B en la lista de parámetros? –
Bueno, al escribir mi propio Procedimiento almacenado, sabría qué significarían los datos en la lista de parámetros ... ¿Sería el SP significativamente más rápido que los INSERTOS individuales? –
No sé de manera significativa. Tendría que comparar ambos métodos, pero al final seguiría haciendo dos insertos y no puede evitar ese hecho. –