我目前正在重写一个数据推送脚本,该脚本从另一台服务器的MSSQL数据库中提取数据,然后将数据插入到MySQL数据库中。这个过程是通过PHP处理的,并且按计划每晚执行。
原始脚本每晚都会TRUNCATE
表并重新插入所有数据。其中一些表具有来自MSSQL数据库的主键或唯一键,而其他一些则没有。
我考虑为当前没有它们的MySQL表添加通用主键,以便可以使用INSERT ... ON DUPLICATE KEY UPDATE
而不是每晚清空表并重新插入数据。这些主键将仅在此过程中使用。
如果我使用INSERT ... ON DUPLICATE KEY UPDATE
而不是像当前脚本一样使用TRUNCATE
和INSERT
,这个过程会更快/资源更少吗?值得为当前没有主键的表创建通用主键来做INSERT ... ON DUPLICATE KEY UPDATE
吗?我正在寻求脚本的最佳性能。