小记--------phoenix创建二级索引
//给单个字段创建二级索引 create index pushOrderTime_IDX on "new_push_order_tb"("pushOrderTime"); //给多个字段创建二级索引 CREATE INDEX ALL_INDEX ON "new_push_order_tb"("driver_id") INCLUDE("driver_name","mobile","alliance_name","register_city","driver_type","pushOrderTime","driver_management_id"); //删除二级索引 ALL_INDEX(索引表名) new_push_order_tb(表名) drop index ALL_INDEX ON "new_push_order_tb"; //查看 查询语句是否查询二级索引表 explain SELECT "driver_id","pushOrderTime" FROM "new_push_order_tb" WHERE "driver_id" = '10000' and "pushOrderTime" >= '2019-11-01' limit 2;
创建好二级索引的phoenix表
自己理解的索引表:
如果原始的phoenix表有10个字段, 如果使用创建多个索引字段的创建语句,相当于从10个字段中取出5个字段作为索引表自己的字段,如果在查询表过程中,SQL语句中出现的字段都在索引表中存在,那么就会从索引表中进行查询(效率高),如果有一个字段不在索引表中(select、where中出现的字段),那么就会走原始表(查询效率低)
还有一个注意的点是:在创建完索引表之后,如果使用hbase 的put 操作插入数据以后,是不会同步到索引表中
作者:于二黑
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。