云数据库 GEMINIDB-如何设计宽表主键:设计主键应该避免哪些情况
设计主键应该避免哪些情况
GeminDB Cassandra是一个 分布式数据库 ,数据按照主键分布。如果存在多列主键,则按照数据库的最左匹配原则分布。为避免产生写入热点问题,建议您遵循以下条件:
- 主键的第一列尽量分散,不建议主键名使用相同的前缀。
- 避免使用共同前缀或者自增的数据作为主键的第一列或者索引列(例如时间戳列)。
- 避免使用有明显前缀的字段或者枚举(比如order_type)作为主键的第一列。
如果有类似的情况无法避免,可以利用Hash算法进行打散。例如:
假设原始主键pk是递增的字符串,可以设定新主键pk1 = hash(pk).substring(0,4)+pk,即选取原始主键pk经过Hash算法计算后的结果前4位作为前缀,拼接原始主键pk,最终形成新的主键pk1。
- GaussDB如何建主键_数据库索引设计规范_高斯数据库如何建主键-华为云
- 云数据库Gaussdb数据库索引_华为gaussdb__gaussdb 数据库
- GaussDB主键生成_GaussDB存储过程_高斯数据库主键生成_华为云
- GaussDB行列混合存储_GaussDB规划存储模型_高斯数据库行列混合存储-华为云
- GaussDB索引_华为数据库GaussDB_高斯数据库索引_华为云
- GaussDB引擎_华为云GaussDB优势_高斯数据库引擎_华为云
- 华为云数据库 RDS for MySQL常见故障排除_华为云
- GaussDB操作手册_云数据库Gaussdb快速入门_高斯数据库操作手册-华为云
- 云数据库RDS
- GaussDB原理_GaussDB数据库原理_高斯数据库原理-华为云