这个 SELECT 使用索引的 QLDB 查询是否会被优化
Will this SELECT QLDB query using index be optimized or not
我有一个 table,其中包含一些索引和一些不同的列。我运行这个查询得到的结果是一个用户的数据,不是所有的用户数据。
用户字段由UID
定义
时间字段由 TimeValue
定义(我以数字形式输入时间以便比较它们)
我想要的数据由 Cause
列
定义
这是我的查询。此查询将执行 table 扫描还是仅搜索 UID 为给定行的那些行。
UID
、TimeValue
和Cause
也是索引
SELECT Cause, Cause_Amount, UID FROM Contribution WHERE UID = 'u5JvslEo9DbQ7hcq4vkM74dWlxr2' AND TimeValue > 1620414948000 AND ( Cause = 'cleanAir' OR Cause = 'safeWater')
检查 QLDB 正在做什么的一种方法是查看查询统计信息中返回的 ReadIOs 值。如果您看到您的 ReadIOs 与 table 中的文档总数相匹配,则可能是在进行扫描,如果较低,则说明您正在使用索引。
我有一个 table,其中包含一些索引和一些不同的列。我运行这个查询得到的结果是一个用户的数据,不是所有的用户数据。
用户字段由UID
定义
时间字段由 TimeValue
定义(我以数字形式输入时间以便比较它们)
我想要的数据由 Cause
列
这是我的查询。此查询将执行 table 扫描还是仅搜索 UID 为给定行的那些行。
UID
、TimeValue
和Cause
也是索引
SELECT Cause, Cause_Amount, UID FROM Contribution WHERE UID = 'u5JvslEo9DbQ7hcq4vkM74dWlxr2' AND TimeValue > 1620414948000 AND ( Cause = 'cleanAir' OR Cause = 'safeWater')
检查 QLDB 正在做什么的一种方法是查看查询统计信息中返回的 ReadIOs 值。如果您看到您的 ReadIOs 与 table 中的文档总数相匹配,则可能是在进行扫描,如果较低,则说明您正在使用索引。