2014-12-03 42 views
0

我有一个包含20个表的数据库。 当我必须重新启动数据库时,我需要运行脚本来检索备份文件中的信息并重新填充数据库。我必须每周做一次。所以,我想知道。我有一个表评论,那是每天都在增长。在重新启动过程中,我有一个代码,对此:通过所有注释(可以说10000个注释)循环,然后为每个:1打开数据库连接,2插入值,3关闭数据库连接。就性能而言,执行此任务的最佳做法是什么?如果我有:1打开数据库连接,2循环槽10000注释,意味着,插入10000次和3关闭,在性能方面会更好?换句话说,打开和关闭数据库连接10000次是否有任何区别或者无关紧要?MySql性能用于多重插入,打开和关闭db连接

+0

想象最好的情况是编写一个大的插入语句,或2-3个大型的而不是10K个别语句。 – 2014-12-03 16:44:26

+1

为什么不使用'mysqldump'?它知道如何有效地做到这一点。 – Barmar 2014-12-03 16:45:00

+0

我使用mysqldump。有时我需要插入新的大量数据,这些数据将存储在下一个mysqldump的备份文件中 – zwitterion 2014-12-03 16:46:55

回答

0

以块为单位读取数据,例如每10000条记录100个(自己计算) 然后打开一个事务池... Setautocommit为false,然后执行操作。现在使用未来的100个条目......并在最后的委员会和关闭交易..任何错误回滚