HBase最佳读取方式?“批量读”or“多线程并发读?
无边的绿波 2013-12-03 09:52:02 hbase提供get,scan两种获取数据的方式。这里主要说下get获取方式,
get有一种是table.get(get) 还有一种是table.get(List<Get>);
假设我一次要取十个rowkey的数据,可以使用:
1、 循环十次,每次取一条数据。
for(String key : keys){
Result result = table.get(new Get(key.getByte()));
}
2、一次获取十条数据
3、并发开启十个线程,每个线程去获取一条数据
疑问:
三种比较方式中,第二种读取性能是最快的,第三种并发获取是最慢的。为什么会是这样呢?
参考地址:http://www.cnblogs.com/panfeng412/archive/2012/03/08/hbase-performance-tuning-section3.html
这个里面提到了 “批量读”和“多线程并发读”,两者进行比较性能如何?这个多线程并发读取的意义在哪里?有什么优点吗?
希望大牛们,不吝赐教。
谢谢