【发布时间】:2011-03-17 18:49:22
【问题描述】:
好的,所以故事是这样的:
-- 我有很多特定格式的文件(相当大,大约 25GB),需要导入数据存储区
-- 这些文件不断更新数据,有时是新的,有时是相同的数据
-- 我正在尝试找出一种算法,如何检测文件中特定行的某些内容是否发生了变化,以最大限度地减少更新数据库所花费的时间
--它现在的工作方式是我每次都删除数据库中的所有数据,然后重新导入它,但这将不再有效,因为我需要一个时间戳来说明项目何时发生变化.
-- 文件包含字符串和数字(标题、订单、价格等)
我能想到的唯一解决方案是:
-- 计算数据库中每一行的哈希值,将其与文件中行的哈希值进行比较,如果它们不同,则更新数据库
-- 保留文件的 2 个副本,以前的和当前的,并在其上制作差异(这可能比更新数据库更快)并基于这些更新数据库。
由于数据量非常大到巨大,我现在有点别无选择。从长远来看,我会摆脱文件,数据将直接推入数据库,但问题仍然存在。
任何建议,将不胜感激。
【问题讨论】:
标签: database algorithm scalability