hyp*_*ean 5 database algorithm scalability
好的,所以故事是这样的:
- 我有很多文件(非常大,大约25GB),这些文件是特定格式的,需要在数据存储区中导入
- 这些文件不断更新数据,有时是新的,有时是相同的数据
- 我试图弄清楚如何检测文件中特定行的某些内容是否发生了变化的算法,以便最大限度地减少更新数据库所花费的时间
- 它现在的工作方式是我每次都丢弃数据库中的所有数据,然后重新导入它,但这不再适用,因为我需要一个项目更改时间的时间戳.
- 文件包含字符串和数字(标题,订单,价格等)
我能想到的唯一解决方案是:
- 为数据库中的每一行计算一个哈希值,将其与文件中行的哈希值进行比较,如果它们不同则更新数据库
- 保留2个文件副本,前面的文件和当前文件,并在其上制作差异(这可能比更新数据库更快),并根据这些更新数据库.
由于数据量非常庞大,我现在已经没有选择了.从长远来看,我将摆脱文件,数据将直接推送到数据库,但问题仍然存在.
任何建议将被认真考虑.
与其按需计算数据库中每一行的哈希值,为什么不存储哈希值呢?
然后,您可以计算相关文件的哈希值并将其与数据库存储的哈希值进行比较。
更新:
我想到的另一个选择是将上次修改日期/时间信息存储在数据库中,然后将其与相关文件的信息进行比较。如果信息不能有意或无意地更改,这应该可行。