我正在构建一个可以在一段时间后分布在多台机器上的系统 所以我已经完成了序列,uuid,梳子......的所有测序方法。
我发现他们中没有一个对我来说是完美的。
我想出了这个:
所以用户行的PK看起来像这样:
3et6us1001
我有什么想念可以让这种方式无效吗?
答案 0 :(得分:0)
你的计划听起来不错。唯一的问题(不一定是大问题)是许多DBMS被优化为使用整数键。你可以做两件事来利用这个:
答案 1 :(得分:0)
您可以使用带有整数的复合键:
primary key(machine_id, record_id);
单列密钥的一些好处是您不需要知道nr机器的上限。如果你的RDBMS支持它,这也很适合散列分区。从管理角度来看,这是有益的,因为您可以非常快速地移动大块数据。此外,从性能的角度来看,由于分区连接,这可以帮助实现连接性能。
复合键需要更多存储空间。如果支持表压缩,则额外存储将是最小的,因为每个块将具有高度重复。特别是如果你使用散列分区方案。