【发布时间】:2012-01-06 00:21:36
【问题描述】:
我有一个表,它存储来自一组传感器的带时间戳的记录,这些读数每天被采集 14400 次。 (每 6 秒)。
有 4 个传感器,它们共享它们的主数据表。
目前架构如下:
id (int-PK)
time (DateTime)
sensor (int)
reading (int)
这很好用,我将主键设置为自动增量。
然而,拥有这个主键似乎很愚蠢,因为我从不引用它 - 使用时间和传感器的组合作为复合键会更好吗?
如果我确实使用了复合键,我假设我每行的字节数也会减少吗?这是相关的,因为该表超过 10m 行,因此任何节省都是值得的。
这似乎是双赢的,但我想看看这种方法会产生什么影响。
【问题讨论】:
-
它是什么类型的数据库? (例如,它是 Oracle、SQL Server 吗?)
-
MSSQL 2008 R2,虽然我看不出我的问题太针对技术了?
-
除了将日期时间放入 PK 之外,我从来没有遇到过任何问题。当您的插入因重复而开始失败时,您会希望自己没有这样做。
-
在这种情况下,插入重复数据失败将是我的预期行为。
-
只是检查您的数据库引擎是否对日期时间和组合主键有任何限制。
标签: c# sql-server database