首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >插入...关于重复键更新与截断/插入

插入...关于重复键更新与截断/插入
EN

Stack Overflow用户
提问于 2013-09-04 22:30:04
回答 1查看 385关注 0票数 3

我目前正在重写一个数据推送脚本,它从另一台服务器上的MSSQL数据库中提取数据,然后将数据插入到MySQL数据库中。该进程被设计为每晚运行一次,并通过PHP处理。

原始脚本TRUNCATEs表,并每晚重新插入所有数据。有些表具有来自MSSQL数据库的唯一主键。有些表格不是这样。

我正在考虑将通用主键添加到当前没有通用主键的MySQL表中,因此我可能会执行一次INSERT ... ON DUPLICATE KEY UPDATE,而不是每天晚上清空这些表并重新插入数据。除了这个过程之外,主键不会被用于任何其他原因。

如果像脚本一样先执行INSERT ... ON DUPLICATE KEY UPDATE而不是TRUNCATE,然后执行INSERT,那么该过程是否会更快/占用更少的资源?为了做一个INSERT ... ON DUPLICATE KEY UPDATE,在当前没有泛型主键的表上创建泛型主键值得吗?我正在寻找这个脚本可能的最佳性能。

EN

回答 1

Stack Overflow用户

发布于 2013-10-01 01:59:46

在不了解数据细节的情况下,很难给出一个通用的答案。我想知道表的行的大小,以及您是否使用Innodb。但是,如果表很小,小于1000行,并且/或者没有使用Innodb,我就会保留原样。但是,如果您有较大的表,我已经看到使用INSERT..ON复制方法在速度上有了显著的提高。

一个好的过程可能是切换一个或两个较大的表,并测量您的速度改进。如果值得,那就继续做剩下的事情。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18616596

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档