gpt4 book ai didi

mysql - 为什么不使用记录的创建时间作为主键呢?

转载 作者:可可西里 更新时间:2023-11-01 07:10:00 26 4
gpt4 key购买 nike

我有一个表,它有一个自动递增的 PK 和 creation_date 字段,它是 unix 时间戳。
我想知道为什么不丢失自动递增字段并使用创建日期字段作为 PK,因为它是唯一的(我使用的是 1/1000 秒的精度)。

对于:我正在杀死一个索引行。
反对:重复的可能性很小(非常非常小),但是很容易处理这种非常罕见的事件。

数据库是mysql。

最佳答案

一般的答案是您的数据可能会改变(无意义的 ID 永远不会改变)...当您意识到您正在本地区域中存储时间并且 DST 开始时会发生什么?如果您想针对 UTC 和/或针对特定时区进行存储?有关更多订购注意事项,请参阅 wcoenen's answer .

如果您开始每秒创建 1000 行,并且您不得不弄乱数据以“使其正常工作”来做一些不适合的事情。也许您会添加一个消歧列,这会使您的索引更大更慢......

然后,当您的项目变得非常流行并且人们开始尝试运行报告/查询时,“它使用日期作为 PK???!!!”

还可以考虑使用允许在非主列上使用聚簇索引的数据库。

关于mysql - 为什么不使用记录的创建时间作为主键呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/600693/

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