1

我找的存储和检索这种性质的关键要素值的组合:数据存储的快速查询过

K1 K2 K3 [...] Kn -> V

其中V场是一个很小的字符串。

查询应该适用于任何密钥组合,例如{K1, K2, K10}{K3, K7}

通过查询,我正在考虑检查平等或范围包含(L <= Ki <= H)。

在实践中,最多会有5个键,而查询将在所有键上执行或仅在其中一个键上执行,但为将来的开发留出一些空间将会很好。

起初我在看Redis,但我看不到它适合我的用例。

[更新] VoltDB可能看起来像一个强有力的竞争者。你怎么看 ?

回答

0

对于我来说,如果您认为按键之间存在某种排序,我还不完全清楚。但是,看来PostgreSQL的hstore可以帮助你。

它允许您将一组(键,值)存储在列中。因此,您可以创建一个带有用于您的密钥的hstore列的表格,并为您的值创建另一列。

Hstore直接为您提供了集查询:

'K1=>1,K2=>2,K3=>3,...,Kn=>n'::hstore ?& ARRAY['K3','k7'] 

你可以通过存储和查询hstore键的值的范围查询模型。 。RESP,如果你认为为了你可以有数字作为hstore键和hstore值将是你的关键:

1=>k1,2=>k2,3=>k3,... 

然后为4个键范围查询是:

L <= (keys -> '4')::INT AND (keys -> '4')::INT <= H 

在另一方面,如果你的范围查询的意思是

(\forall i) L <= Ki <= H 

那么我想的东西也可以做。

hstore支持GiST和GIN索引的优点是它可以相当快速。