2015-09-26 51 views
0

我使用Innodb在MySQL中創建表。該表格將包含來自多個地點的測量結果。大致應當被存儲的數據是:MySQL表結構,我需要一個主鍵嗎?

  • monitor_id - 顯示器(索引)
  • 時間的標識 - 測量的時間,以秒分辨率(索引)
  • 值 - 電流值

隨着時間的推移,每天可能會有數百萬個新的行。

我的問題是:

  1. 我需要一個主鍵?爲了我的應用程序,我不需要PK,但數據庫可能?如果是這樣,使用BigInt是一個壞主意?

  2. 將時間存儲爲MySQL日期時間不是個好主意嗎?或者我應該使用一個整數來存儲unix_timestamp?從長遠來看,這真的很重要嗎?此列將被編入索引。

回答

0
  1. 是的。最好有一些id作爲PK。自動增量(BigInt可以)
  2. Int更適合高負荷。更少的數據存儲(&索引),但更多的邏輯在應用程序(不在查詢中)。
+0

保存PK將添加的存儲不是更有利嗎?考慮到它需要成爲BigInt,我的意思是...... – gregoff

+0

不是很清楚。請重新翻譯一下。 (我的英文很差) – M0rtiis

0
  1. 您應該使用主鍵。有沒有理由,以避免主鍵

Doc

一個表的主鍵代表列或一組您在最重要的查詢使用的列 的。它有一個關聯索引, 可以提高查詢性能。查詢性能優勢來自NULL優化,因爲它不能包含任何NULL值。使用InnoDB存儲引擎 ,表格數據的物理組織結構爲 超快速查找並根據主鍵列或 列進行排序。

  • 如果要存儲應使用日期時間字段,否則應該使用時間戳的特定值。例如,您希望將來更新記錄,其數據類型應該有時間戳記,因爲時間戳記將自動爲您更改
  • 相關問題