gpt4 book ai didi

database - PostgreSQL bytea 主键

转载 作者:行者123 更新时间:2023-11-29 14:02:33 25 4
gpt4 key购买 nike

我的数据库中有一个存储日志的表。日志文件带有秒级精度的时间戳,并存储各种传感器的值及其来源:

log_id, log_date, primary_system_source, sub_system_source, values

其中 log_id、primary_source 和 sub_source 是整数,value 是可变长度字节数组(数据类型:bytea)。

在大多数情况下,log_id、log_date、primary_system_source 和 sub_system_source 字段的组合就足以作为主键。不幸的是,由于某些行中日志系统中时间戳的解析,区分行的唯一因素是传感器值是否也被添加到主键。

看来我可以在没有主键(不好?)和在主键中包含值字段之间做出选择。我担心第二种选择,因为我知道它可能会严重损害性能(该表将有数亿行)。

关于哪个是最佳解决方案有什么提示吗?

最佳答案

这是一个棘手的问题,因为在您刚刚展示的示例中,您的整行都充当主键。由于您的日志时间戳没有绝对精度,我认为您的日志本身可能不包含唯一值(同一时间段内的两个相似感官读数)。如果是这样,您就没有任何方法来唯一标识您的数据,因此无法对其施加唯一约束。

我建议简单地添加一个 SERIAL PK 字段以链接到其他关系,而不用担心您的条目的唯一性,因为无论如何您都无法合理地执行它。如果您在特定时间段内的条目数多于预期,则可以识别重复的日志条目。我不确定性能影响,但运行 SELECT DISTINCT 可能比尝试强制执行唯一性更为谨慎。

关于database - PostgreSQL bytea 主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2317766/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com