hbase表中有一千萬數據,id字段建有二級索引,分別用RowFilter和SingleColumnValueFilter去查詢單條記錄,如:
Filter filter1 = new RowFilter(CompareFilter.CompareOp.EQUAL, new BinaryComparator(Bytes.toBytes("name_id"))); //name_id是一個rowkey的值
Filter filter2 = new SingleColumnValueFilter(Bytes.toBytes("col"), Bytes.toBytes("id"), CompareFilter.CompareOp.EQUAL, Bytes.toBytes(id));
使用filter1作為過濾條件,查詢很慢,使用filter2作為過濾條件,查詢就很快。
我的問題是:通過rowFilter指定了rowkey查詢,為什麼還是這麼慢?
既然有具體Rowkey,可以直接使用Get(rowkey)方法,1000萬條數據應該是在毫秒級別。