所以我正在尋找在我的SQL數據庫中存儲日期,我不知道最有效的方式是什麼。我想到了兩種不同的方法。最高效的數據庫日期存儲方法?
首先,人們將能夠爲每一天設置一定的價格。
例如:
2011年3月8日:$ 1
2011年3月9日:2011年3月10,$ 2
:$ 5
對於我的數據庫我是考慮存儲一個UNIX時間戳或在單獨的字段中存儲月份,日期和年份。
第一種方法:
Unix時間戳
優點
- 僅一個字段
缺點
- 必須轉換日期時間戳
- 有
- 容易出錯的搜索
月/日/年
優點開始和結束日期之間進行搜索
- 更容易搜索
缺點
- 更多領域
- 佔用更多的空間
- 要存儲的數據的很多,所以可以在數據庫放緩。
有了上述信息,您會有什麼建議? (我可以澄清是否有任何這是不明確。)
單獨的字段? 「DATE」類型有什麼問題? – Jon 2011-03-09 01:57:31
我很想投降(但我不會:-),只是因爲純粹的「優化」(注意引號)的數量。我通常會爲這些「建議」打擊同事。 – 2011-03-09 02:09:04
請閱讀http://dev.mysql.com/doc/refman/5.0/en/storage-requirements.html - 你可以看到,DATE(3字節),DATETIME(8字節)和TIMESTAMP(不是SQL 'spec,4個字節)涵蓋了所有的「需求」,具體取決於業務需求。我懷疑在一個TIMESTAMP(和* DO NOT使用整數*)的情況下,DATETIME的額外4個字節在攻擊性基準測試中甚至會顯而易見。 – 2011-03-09 02:15:24