在hbase里面scan的每个next()调用都会为每行数据生成单独的RPC请求
很显然如果一次RPC请求可以获取多方数据,这样效率或者性能方面就更有意义
就有了scan的扫描缓存setCaching(int caching)
这样一次RPC就可以批量提交请求,提高速度。
但是这个值和服务端的内存消耗有关系,如果设置的比较高,性能可以提高,但是每次RPC请求将占用更多时间,而且数据量更多
这样占用的内存更多,所有也需要找到平衡点
之前在项目的开发环境中,由于hbase的服务器配置很低
当有开发人员把值设置的比较高,比如10000的时候,一执行代码hbase就宕机了
scan.setCaching(10000)
所以大家在提高性能的时候要考虑其他内存占用等等,设置适当的值