对于更快的索引数据访问,是否在密钥的第一部分具有更高的基数?

时间:2013-07-24 12:48:50

标签: indexing hbase

假设我正在索引一个将各种其他UUID组合在一起的UUID字符串:

  • UUID1:高度重复的密钥(例如,定义客户ID)
  • UUID2:永不重复的唯一键

需要将它们组合在一起并将其索引在一起(使用排序索引机制进行索引),最好将它组合为:

a)UUID1 + UUID2

b)UUID2 + UUID1

上面的用例是针对行的密钥设计的HBase实现。

2 个答案:

答案 0 :(得分:1)

组合取决于您要进行的搜索。另一个考虑因素可能毫无意义。您实际上只需要标识符的唯一部分,这是足够好的,并且是最佳解决方案,因为您拥有更紧凑的密钥。尽量不要使用单调增加的键值。使用字节数组而不是字符串数据类型,尤其是键的数据。

答案 1 :(得分:1)

您可能还想考虑热点和区域分割。

区域拆分由密钥完成。因此,如果你对同一个前缀(UUID1)进行大量操作,你可能会得到热点。