有效地将流输入与大型SQL数据库同步

时间:2016-02-08 00:24:32

标签: database synchronization

我手上有效率问题,我正在寻找解决问题的方法。情况如下:

  • 我有一个基于行的数据流来自在线来源的系统,每个数据都有唯一的id
  • 我有一个SQL数据库,其中包含现有的基于行的数据,由id索引。
  • 如果SQL数据库与数据库中已有的数据不同,我需要使用新的数据流更新SQL数据库。

显而易见的解决方案是:

  1. 阅读传入的行
  2. 读取数据库中的相应行
  3. 如果数据不同,请更新数据库
  4. 大量的往返行程使得这种算法变得非常慢。

    我的替代解决方案是将整个SQL数据库读入内存,并与新的传入数据进行比较。这消除了往返行程,但所需的内存使得这也是不可行的。

    那么,我有哪些替代方案?

1 个答案:

答案 0 :(得分:0)

  1. 将数据库拆分为多个部分。 (解决尺寸问题)

  2. 设计一种算法,将其中一些数据库片段缓存到内存中。 (速度)

  3. 根据传入的id,将查询哈希到相关数据库。

  4. 如果不能有效地实现步骤2,这将不起作用。