在HBase中,rowkeys按排序顺序存储。使用PrefixFilter
进行扫描将对索引执行全表扫描,直到找到匹配项为止。比赛结束后,扫描将终止。防止全表扫描的常见解决方案是将startrow
与PrefixFilter结合使用。 但是,如果您事先不知道startrow
,那么这项工作就不会有效。
假设您有以下模板:
<foo>|<bar>|<baz>|
我想添加一堆可以用作startrow
的虚假行。
例如,请使用以下行键:
a|
a|b|c|
a|d|e|
a|f|g|
b|
b|b|c|
b|d|e|
b|f|g|
此处,行a|
和b|
是&#34;假行&#34;谁只是为了优化查询而存在:
scan 'tab', {STARTROW => 'b|', FILTER => "PrefixFilter('b')"}
这种策略是否会按预期运作?