HBase二级索引

Phoenix 二级索引

可以将全表扫描优化为范围扫描

全局索引

将全表扫描转化为范围扫描。

额外创建一个表,作为索引表。

当创建了全局索引,先去利用算法找所要查询的列,

  • 默认的索引格式
  • 创建全局索引时,会在HBase中建立一张新表。
  • 索引数据和数据表是存放在不同的表中。
  • 全局索引适用于多读少写的场景。
    • 写数据时要更新索引表,索引表是分布在不同的数据节点上,跨节点传输带来了较大的性能消耗。
  • 只有在查询索引列时才会带来效率提升。
    • 解决办法:包含索引、本地索引

局部索引

创建索引时,携带其他字段的全局索引

create index my_idx on my_tb (v1) include (v2);

本地索引

  • 本地索引适用于写操作频繁的场景。
  • 索引数据和数据表的数据存放在同一张表中(而且是同一个Region),避免在写操作的时候往不同服务器的索引表中写索引带来的额外开销。
  • 可以指定多个列
  • 本地索引会将所有的信息存放于一个影子列族中,读取的时候也是范围扫描,但是没有全局索引快,优点在于不用写多个表了。

posted on 2022-09-06 18:57  茶倌  阅读(287)  评论(0)    收藏  举报