我正在考虑最有效的方法,如何下载和更新我的数据库(MySQL)中的项目。我正在处理成千上万件物品。
我有一个表( table_a ),其中包含项目。每天晚上我都在下载新数据,这些数据存储在 table_b 中。所以 - 午夜时分,我会将数据下载到 table_b ,下载完所有数据后,我将开始比较 table_b 和 table_a 之间的数据。 如果 table_b 中的项目存在于 table_a 中,那么我将通过 table_b 在 table_a 中编辑3-4数字值。如果此项目不在 table_a 中,那么此项目我将保存为 table_a 。
这样我每天一次更新表格 table_a 中的项目。这个方法的问题 - 这个程序非常慢......对于大约20.000个项目,它需要大约25-30分钟。 (我的应用程序在RoR上运行)
我想问你 - 请帮助我,更好,更快捷地将新记录更新到表格中( table_a )? 我将非常感激... ...提前谢谢你, 微米。
答案 0 :(得分:2)
如果数据库中提供了所有必需的数据,那么逻辑并不是非常复杂或经常发生变化,性能是一个问题,将逻辑迁移到单个SQL语句是您最明显的选择之一。
有些事情如下:
INSERT INTO table_a SELECT * FROM table_b ON DUPLICATE KEY UPDATE value1 = table_b.value1,value2 = table_b.value2,....;
答案 1 :(得分:0)
两个建议: