我的数据库将存储大量数据点,因此我使用无符号BIGINT作为主键。
使用DATETIME对象作为主键是否有意义?
谢谢,
答案 0 :(得分:14)
是的,如果您需要唯一地识别离散点或时间段,那么将日期/时间作为键的一部分或其中一部分是有意义的。我不能说这是否适用于您的场景,但作为一般规则,没有根本原因为什么密钥不能基于时间 - 几乎任何数据仓库都会这样做。
答案 1 :(得分:4)
不,因为无法保证它是唯一的。坚持用BIGINT。你可以在DateTime上放一个很好的索引进行查询,这样就足够了。
答案 2 :(得分:3)
没有任何意义,因为你没有任何实际理由,每秒只能限制一张唱片。
答案 3 :(得分:3)
如果您的数据来自单个按时间排序的集合,那么这是有意义的。比如,金融交易的记录。如果您有多个数据点,这些数据点在不同时刻自然发生,但由于四舍五入而具有相同的时间戳,请更改低位以区别它们。
MySQL中的more problematic比other数据库中的{{3}} {{3}},因为时间戳的存储精度只有1秒。
答案 4 :(得分:2)
如果碰巧每秒有多次观察,这将失败。因此,除非你能保证每秒不会有超过一个点,否则最好不要这样做。