[英]Derby/JavaDB: TIMESTAMP and BIGINT data types - which is better to store the date?
我有點困惑 - 我想將日期存儲在JavaDB / Derby數據庫中,但哪種數據類型更好用?
我可以像System.currentTimeMillis()
一樣簡單地存儲Long
並以BIGINT
格式將其保存到數據庫中。 后來我可以按照自己的意願格式化它。
或者我可以使用TIMESTAMP
數據類型將其存儲為TIMESTAMP('1962-09-23 03:23:34.234')
。
哪種方式更有效?
TIMESTAMP數據類型的文檔和實現文檔說明都表示Derby使用納秒分辨率。 這表明一個64位整數,但我不知道Derby的實現。 如果您真正關心,請查看源代碼。
為什么不使用TIMESTAMP? 數據庫的工作是管理數據,所以讓它。 如果沒有一個非常重要的原因,你不應該試圖對數據類型進行簡化。 對“效率”的模糊關注是微觀管理數據庫服務器的工作。
此外,你的問題很模糊。 “效率”是什么意思? 存儲空間較少? 內存中使用的空間更少? 索引的優點? 更快的查詢? 寫得更快? 但是,再次,這些擔憂是過早優化 (一件壞事),直到你發現了一個特定的瓶頸。
將日期時間值存儲在日期時間數據類型中是有利的,否則該數據類型將不會添加到數據庫的指令表中。 使用TIMESTAMP的一個重要好處是它知道如何將字符串解析為日期時間值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.