我正在处理带有Transactions表的分类帐。每个条目都有一个transaction_id
、account_id
和timestamp
其他元数据。我需要使用 between 运算符查询给定的所有事务account_id
timestamp
我计划的方法是在和account_id
上建立一个索引。但是,我注意到AWS 文档中对不等式和索引的限制,我计划将其应用于transaction_id
timestamp
timestamp
只有使用相等谓词时,查询性能才会提高;例如,字段名称 = 123456789。
QLDB 目前不支持查询谓词中的不等式。这意味着没有实施范围过滤扫描。
...
警告
QLDB 需要索引来有效地查找文档。WHERE 谓词子句中没有索引字段,QLDB 在读取文档时需要进行表扫描。这可能会导致更多的查询延迟,也可能导致更多的并发冲突。
交易会随着时间的推移无限生成和增长,我需要能够一次查询一周的交易。
当前查询:
SELECT *
FROM Transactions
WHERE "account_id" = 'test_account' and "timestamp" BETWEEN `2020-07-05T00:00Z` AND `2020-07-12T00:00Z`
我知道可以将数据流式传输到更适合此查询的数据库,例如 dynamodb,但我想知道我对执行上述查询的性能问题是否有效,如果是,推荐的索引是什么?查询以确保此扩展并且不会导致对给定的所有事务进行扫描account_id
?