civ*_*v15 4 postgresql primary-key uuid
我有 8 个使用 UUID 主键的表,其中 7 个使用 UUID 外键。使用 BIGSERIAL 而不是 UUID 对性能会更好吗?
uuid
如果需要,请使用它。
如果不这样做,请不要使用它。
bigint
以多种方式更小,速度更快。8 与 16 字节听起来并不多,但对于大表和多个实例,差异会累积起来。(并且很少会uuid
或bigint
对小桌子有意义。)
bigint
在人眼和人类处理以及在数字毕竟没有变得那么大的情况下,通常也更容易。UUID 总是需要 32 个字符的表示(可选加破折号)。
如果在同一个表中有两个(PK 和 FK),则行将增长 16 个字节。这对于窄行可能会有所不同,或者对于宽行可以忽略不计。更重要的是,关联索引的大小也在增长。虽然 a 的 PK 索引bigint
每行占用 16 个字节(包括 8 字节索引元组开销),但uuid
. 如果 RAM 不可用,这可能意味着驻留在 RAM 中的多个索引与被逐出并从存储中反复读回的差异。这将是一个巨大的差异。
你还需要bigint
吗?通常,一个 4 字节integer
就足够了(如果它真的足够好的话)......
有关的:
归档时间: |
|
查看次数: |
2001 次 |
最近记录: |