云数据库 GEMINIDB-如何设计宽表主键:如果数据足够分散,还会存在堆积的热点现象吗

时间:2024-09-29 14:48:46

如果数据足够分散,还会存在堆积的热点现象吗

散列的目的是将数据分散到不同的分区,不至于产生热点使某一台服务器终止,其他服务器空闲,充分发挥分布式和并发的优势。

最佳设计示例:

  • 设计md5散列算法,主键设计为[md5(userid).subStr(0,4)][userId][orderid] 。
  • 设计反转,主键设计为[reverse(userid)][orderid]。
  • 设计取模,主键设计为[bucket][timestamp][hostname][log-event]; long bucket = timestamp % numBuckets。
  • 增加随机数,主键设计为[userId][orderid][random(100)]。
support.huaweicloud.com/cassandraug-nosql/nosql_01_0015.html