[英]RocksDB: range query on numbers
是否可以有效地使用 RocksDB 進行數字范圍查詢?
例如,如果我有數十億個元組(price, product_id)
,我可以使用 RocksDB 檢索所有具有10 <= price <= 100
的產品嗎? 或者它不能用於那個?
我很困惑,因為我找不到任何關於數字鍵和范圍查詢的特定文檔。 然而,我也讀到 RocksDB 被用作許多 DBMS 的數據庫引擎,這表明在這種情況下可以有效地查詢它。
在 RocksDB 等鍵值存儲中組織上述元組以獲得任意范圍(事先不知道)的推薦方法是什么?
你會使用什么樣的鑰匙? 你會使用什么類型的查詢?
是的,rocksdb 支持有效的范圍查詢 [即使是事先不知道的任意范圍]
范圍查詢。
https://github.com/facebook/rocksdb/wiki/Prefix-Seek
數字鍵
沒有關於如何 model 你的數據這樣的文檔 - 如果你不知道如何 model 已經你不應該首先使用rocksdb,因為它太低了
在 RocksDB 等鍵值存儲中組織上述元組以獲得任意范圍(事先不知道)的推薦方法是什么?
在您的示例中 - 它正在創建價格索引以查找產品 ID
因此,您將價格編碼為字節數組並將其用作鍵,然后將產品 ID 作為字節數組用作值
示例格式
key => value
priceIndex:<price>#<productId> => <productId>
然后你會
priceIndex:10
在這種情況下]priceIndex:100
在這種情況下]這將為您提供該范圍內的所有鍵值對 - 在您的情況下,這將是價格范圍內的所有價格、產品 ID 元組
必須小心,因為許多產品可以具有相同的價格,並且rocksdb 密鑰是唯一的 - 因此您也可以在價格后綴產品 ID 以使密鑰唯一
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.