L'utilisation de Mysql pour faire de multiples INSÉRER sur des tables liées

J'ai deux tables, l'une liée à la Clé Primaire de l'autre. Au moment où je l'INSÉRER dans Une table, obtenir le LAST_INSERT_ID, et ensuite l'INSÉRER dans la table B.

Mais j'ai des centaines de documents à insérer et je veux accélérer les choses.

Dans Mysql, vous pouvez soit:

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

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

etc, ou

INSERT INTO table_a (v1, v2, v3) VALUE (0, 1, 2), (4, 5, 6), etc pour ajouter plusieurs entrées plus rapide - mais pour une seule table.

Bien sûr, cette dernière est beaucoup plus rapide. Je me demandais si il était possible de reproduire ce comportement pour mon exemple, avec deux tables liées à l'aide d'une Procédure Stockée, et qu'il aurait même une amélioration spectaculaire des performances:

quelque chose comme: appel special_insert((0, 1, 2), (4, 5, 6), etc); ou similaire.

Je n'ai aucune Procédure Stockée expérience, donc je suis de pêche pour des idées sur la direction à procéder.

La SP vous permet de simuler un multi-table monolithique insérer. La question serait... comment pouvez-vous séparer le tableau de données à partir de la table de données B dans la liste des paramètres.
Eh bien, en écrivant mon propre Procédure Stockée je voudrais savoir ce que les données dans la liste des paramètres signifierait... Serait le SP être nettement plus rapide que les INSERTS?
Je ne sais pas de manière significative. Vous auriez à comparer les deux méthodes, mais à la fin, si vous souhaitez toujours être de faire deux inserts et ne peut pas obtenir autour de qui fait.

OriginalL'auteur Michael Franze | 2012-04-09