Mysql 处理大型重叠数据集-仅更新增量
我的Python应用程序生成一个CSV文件,其中包含几百条唯一的记录,每行一行。它每小时运行一次,并且经常在每次运行中数据保持不变。如果有变化,则变化很小,例如Mysql 处理大型重叠数据集-仅更新增量,mysql,Mysql,我的Python应用程序生成一个CSV文件,其中包含几百条唯一的记录,每行一行。它每小时运行一次,并且经常在每次运行中数据保持不变。如果有变化,则变化很小,例如 删除了一条记录 增加了一些新记录 对现有记录的偶尔更新 每个记录只有四个简单字段(名称、日期、id、描述),到项目达到最大值时,记录不会超过10000条,因此可以将所有记录都包含在一个表中 将更改合并到表中的最佳方法是什么 我正在考虑的几种方法是: 1) 清空表并在每次运行时重新填充。 2) 将最新数据写入临时表,并运行DB作业将更
- 删除了一条记录
- 增加了一些新记录
- 对现有记录的偶尔更新
谢谢我会用以下方法:
DELETE m FROM main_table AS m
LEFT OUTER JOIN new_table AS t ON m.id = t.id
WHERE t.id IS NULL;
INSERT INTO main_table (id, name, date, description)
SELECT id, name, date, description FROM new_table
ON DUPLICATE KEY UPDATE
name = VALUES(name), date = VALUES(date), description = VALUES(description);
id
是主键,并且表中没有其他唯一键
如果数据集大小为10000行,那么这应该足够快,可以在一批中完成。一旦数据集变大10倍,您可能需要重新考虑解决方案,例如,一次处理10000行