一,什么是二级索引?
hbase会对rowkey进行索引,索引根据rowkey进行查询就会非常快,而且hbase只提供rowkey和rowkey范围查询,这是为什么hbase可以做实时的原因,他的实时局限性很大的。
如果要根据rowkey以外的字段进行查询,是没有办法走索引的,hbase不支持针对rowkey以外的字段建立索引,也即是说hbase不支持二级索引。
二级索引就是数据库默认创建的索引之外,根据表的具体情况创建的其他索引。
二级索引的原理通常是在写入时针对某个字段和rowkey进行绑定,查询时先根据这个字段查询到rowkey,然后根据rowkey查询数据,二级索引也可以理解为查询数据时多次使用索引的情况。
有点像es的倒排索引,不同的是es的倒排索引是针对全文分词的索引,二级索引是针对表字段的索引。
二,phoenix的二级索引分为四种:全局索引、本地索引、覆盖索引、函数索引
图中所谓的组合索引是四种索引的任意组合。