我有两个表,一个链接到另一个的主键。此刻我插入到表A中,获取LAST_INSERT_ID,然后插入到表B中。使用Mysql在链接的表上执行多个INSERT
但是我有数百条记录要插入,我想加快速度。
在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)等);或类似的。
我没有存储过程的经验,所以我在钓鱼的想法在其上进行方向。
该SP会让你模拟一个多表单片插入。问题是......如何将参数列表中的表A数据与表B数据分开。 – 2012-04-09 15:23:17
好吧,通过编写我自己的存储过程,我会知道参数列表中的数据意味着什么...... SP是否会比单独的INSERTS快得多? – 2012-04-09 15:32:19
我不太了解。你必须对两种方法进行基准测试,但最终你仍然会做两次插入,并且无法解决这个问题。 – 2012-04-09 15:45:15