建议使用气雾过滤器过滤某些区域

问题描述 投票:0回答:1

我有大约200万条记录,每条记录有10-12个字段(主要是字符串)。现在,我想根据某些字段过滤记录。是否建议使用二级索引或其他更好的选择来执行此操作?另外,获取所有记录/正义键需要多少时间(应用过滤器之后)?

提前感谢。

java filtering query-optimization aerospike secondary-indexes
1个回答
0
投票

您可以使用谓词过滤器进行扫描-用途非常广泛(甚至可以进行正则表达式)或仅支持对字符串使用相等过滤器的二级索引查询。

在管理进度方面,扫描更加可靠,并且在下一个即将发布的版本(2020年3月/ 4月)中将更加出色。扫描确实需要先从磁盘读取所有记录,然后再应用过滤器。

SI会更快,因为您在从磁盘获取记录之前正在进行过滤(内存中的二级索引),但是如果基础群集节点不稳定(即,如果您在SI查询期间丢失或添加了一个节点,则可靠性较低)。该查询在所有群集节点上并行运行,并且以不特定的顺序将结果通过管道传递回客户端。您可以通过使用“ failOnClusterChange”选项并在群集稳定时重新启动来缓解这种情况。 (扫描也具有相同的可用选项。)

哪个更好?对您的特定问题进行A / B测试。

© www.soinside.com 2019 - 2024. All rights reserved.