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索引的優點是它可以相當快速。