簡體   English   中英

MySQL:使用DATETIME作為主鍵

[英]MySQL: Using DATETIME as primary key

我的數據庫將存儲大量數據點,因此我將使用未簽名的BIGINT作為主鍵。

使用DATETIME對象作為主鍵是否有意義?

謝謝,

是的,如果您需要唯一地標識離散的點或時間段,那么將日期/時間作為鍵或鍵的一部分是合理的。 我不能說這是否適用於您的情況,但作為一般規則,沒有任何基本原因不能使密鑰不能基於時間-幾乎所有數據倉庫都可以這樣做。

不可以,因為不能保證它是唯一的。 堅持使用BIGINT。 您可以在DateTime上放置一個不錯的索引以進行查詢,這樣就足夠了。

這沒有任何意義,因為您將被限制為每秒沒有任何實際記錄的記錄。

如果您的數據來自單個按時間順序排列的集合,則這很有意義。 說,金融交易記錄。 如果您具有多個自然發生在不同時刻的數據點,但由於舍入而具有相同的時間戳記,請更改低階位以區分它們。

在MySQL中,這比在 其他數據庫中 成問題 ,因為時間戳的存儲時間僅為1秒。 (編輯:從5.6.4開始,MySQL在時間類型上的精度為微秒)

如果您碰巧每秒有多個觀測值,那么它將失敗。 因此,最好不要除非您可以保證每秒不超過一分。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM