是否有任何数据存储可以处理大量复杂的查找ID

时间:2015-06-23 02:06:07

标签: sql persistence datastore

因此,我们最近遇到了一个问题,即我们希望快速从RDS仓库数据库中的度量表中获取大量(700+)项。此度量标准表的布局类似于:

ID, Value1, Value2, Value3, Date

我们真正想要的是有效地运行遍历每700个项目的查询,并对该项目的数据进行少量选择。与此select * from table where Value1 = 3 and Value2 = 1 and Value3 = 501 and date > '2015-06-01'类似的东西。问题是,700次微小的请求最终会变得太慢,因为往返DB会导致你死亡。所以我们尝试了更大的查询,但基本上我们只需说select * from table where date > 2015-03-01 and Value3 = 501。这带来了太多数据的问题,因为我们必须扩展我们的范围,以包括比每个单独项目所需的更多数据。实际上,SQL并不喜欢像select * from table where (Value1 = 3 and Value2 = 1 and Value3 = 501 and date > '2015-06-01') or (Value1 = 2 and Value2 = 1 and Value3 = 501 and date > '2015-05-01')or (Value1 = 5 and Value2 = 1 and Value3 = 501 and date > '2015-06-01')这样的大量语句。我不知道有任何处理这种快速查找的东西。

当你需要做很多小的请求时,即使像redis这样的东西也有很长的往返时间,而且我不熟悉任何可以进行这种更大的复杂键查找的持久层。我意识到你可以创建大型sql语句来做到这一点,但它看起来更像是一个cludge。也许没有什么可以处理这个,但我想我会看到是否有人知道为了处理这些类型的查找而构建的东西。

只是一个参考点,我们正在寻找100毫秒以下的数据抓取,所以当你的往返时间为1毫秒时,700个项目的速度太慢了。

0 个答案:

没有答案