开发者社区 问答 正文

RowKey设计的长度为什么越短越好?

RowKey设计的长度为什么越短越好?

展开
收起
游客fbdr25iajcjto 2021-12-09 20:28:37 419 分享 版权
1 条回答
写回答
取消 提交回答
  • 原因如下:

    (1)数据的持久化文件HFile中是按照KeyValue存储的,如果Rowkey过长比如100个字节,1000万列数据光Rowkey就要占用100*1000万=10亿个字节,将近1G数据,这会极大影响HFile的存储效率;

    (2)MemStore将缓存部分数据到内存,如果Rowkey字段过长内存的有效利用率会降低,系统将无法缓存更多的数据,这会降低检索效率。因此Rowkey的字节长度越短越好。

    (3)目前操作系统是都是64位系统,内存8字节对齐。控制在16个字节,8字节的整数倍利用操作系统的最佳特性。

    2021-12-09 20:51:07
    赞同 展开评论
问答地址: