我正在考虑将GUIID用作特定用例的HBase表中的列名。我知道长名称会占用每一行的空间,但是除了空间之外,HBase是否还会带来其他性能上的损失?我主要关心的是速度而不是磁盘空间。
由于HBase表稀疏,因此我考虑每个用户ID(GUID)具有唯一的列名。所有这些列都将属于同一列族(整个表只有一个列族)。
由于它们中的大多数将是空的,所以我不太关心空间。不过,我担心的是对Get和Put操作速度的影响。在将这些值用作单独表中的行键(在这种情况下,我的操作将涉及4个Gets和4个Puts)或以长列名进行这种选择(在这种情况下,我的操作将仅涉及2个Gets和2个)。恐怕一旦Get迅速找到行,遍历列名以找到正确的列会花费太长时间吗? (相对于如果它是单独表中的行键,能够很快找到相同的值)。我们说的是数千个潜在价值,而不是数百万个等。
我将进行一些经验基准测试,但是这样做的首选理论方法是什么?