HBase二级索引
Phoenix 二级索引
可以将全表扫描优化为范围扫描
全局索引
将全表扫描转化为范围扫描。
额外创建一个表,作为索引表。
当创建了全局索引,先去利用算法找所要查询的列,
- 默认的索引格式
- 创建全局索引时,会在HBase中建立一张新表。
- 索引数据和数据表是存放在不同的表中。
- 全局索引适用于
多读少写
的场景。- 写数据时要更新索引表,
索引表是分布在不同的数据节点上
,跨节点传输带来了较大的性能消耗。
- 写数据时要更新索引表,
- 只有在查询索引列时才会带来效率提升。
- 解决办法:包含索引、本地索引
局部索引
创建索引时,携带其他字段的
全局索引
create index my_idx on my_tb (v1) include (v2);
本地索引
- 本地索引适用于写操作频繁的场景。
- 索引数据和数据表的数据存放在同一张表中(而且是同一个Region),避免在写操作的时候往不同服务器的索引表中写索引带来的额外开销。
- 可以指定多个列
- 本地索引会将所有的信息存放于一个影子列族中,读取的时候也是范围扫描,但是没有全局索引快,优点在于不用写多个表了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· 地球OL攻略 —— 某应届生求职总结