Grammar

Hint 使用语法

Phoenix 支持 Hint 语法,用于对查询行为的某些选项设置进行覆盖,在 sql 中拼装使用的语法如下,多个 hint 使用 , 分隔,注意如果拼写错误,该 hint 部分会被忽略;

# 使用单个 hint 选项
select /*+ INDEX(TEST.ORDERS IDX_PRODUCT_NAME) */ * from test.orders 
where product_name = :productName

# 使用多个 hint 选项
select /*+ NO_CACHE,SKIP_SCAN,INDEX(TEST.ORDERS IDX_PRODUCT_NAME) */ * from test.orders 
where product_name = :productName

Scan Hint

Grammar

SKIP_SCAN

用于强制对该次查询跳过 scan 操作。如果查询不包含前导主键列,但是包含其他可选主键列,使用该选项可提升查询效率。

RANGE_SCAN

用于强制对该次查询执行范围 scan 操作。如果对非可选主键列进行 filter 操作,使用该选项可以提升查询效率。

Cache Hint

Grammar

NO_CACHE

用于防止将查询结果填充到 HBase Block Cache 块缓存。主要使用于进行 full scan 查询,且知道返回结果不太可能进行再次查询的场景下使用,节约 HBase 块缓存。

Index Hint

Grammar