MySQL:使用DATETIME作为主键

kninwzqo  于 2023-05-05  发布在  Mysql
关注(0)|答案(5)|浏览(402)

我的数据库将存储大量的数据点,所以我使用一个无符号的BIGINT作为主键。
使用DATETIME对象作为主键有意义吗?
谢啦

wlwcrazw

wlwcrazw1#

是的,当然,如果需要唯一地标识离散的时间点或时间段,那么将日期/时间作为键或键的一部分是有意义的。我不能说这是否适用于您的场景,但作为一般规则,没有根本原因表明键不能基于时间-几乎所有数据仓库都是这样做的。

polhcujo

polhcujo2#

不,因为不能保证它是唯一的。坚持使用BIGINT。您可以在DateTime上放置一个很好的索引以进行查询,这就足够了。

ygya80vv

ygya80vv3#

这是没有意义的,因为您将被限制为每秒一个记录,而没有任何实际的原因。

zaq34kh6

zaq34kh64#

如果您的数据来自一个按时间排序的集合,则这是有意义的。比如说,金融交易记录。如果您有多个数据点,这些数据点自然发生在不同的时刻,但由于舍入而具有相同的时间戳,请更改低阶位以区分它们。
这是MySQL中的moreproblematic,而不是other数据库,因为时间戳仅以1秒的精度存储。(编辑:从5.6.4开始,MySQL在时间类型上具有微秒精度)

z4iuyo4d

z4iuyo4d5#

如果您碰巧每秒有多个观测,则此操作将失败。由于这个原因,最好不要这样做,除非你能保证每秒不会超过一点。

相关问题