精品亚洲综合久久_欧美区 在线播放_每日在线观看AV_小仙女自慰喷出白浆动态图_国产精品一区二不卡的视频毛片久_神马影视伦理片6080_无遮挡污视频网站_国产午夜av在线播放

技術支持 Support
搜索 Search
你的位置:首頁 > 技術支持

MySQL 設計數據表時,時間類型 datetime、bigint、timestamp區別

2023/1/7 22:17:04      點擊:

數據庫中可以用datetime、bigint、timestamp來表示時間,那么選擇什么類型來存儲時間比較合適呢?

前期數據準備

通過程序往數據庫插入50w數據

數據表:

其中time_long、time_timestamp、time_date為同一時間的不同存儲格式

實體類users

dao層接口

測試類往數據庫插入數據

sql查詢速率測試

通過datetime類型查詢:

耗時:0.171

通過timestamp類型查詢

耗時:0.351

通過bigint類型查詢

耗時:0.130s

結論 在InnoDB存儲引擎下,通過時間范圍查找,性能bigint > datetime > timestamp

sql分組速率測試

使用bigint 進行分組會每條數據進行一個分組,如果將bigint做一個轉化在去分組就沒有比較的意義了,轉化也是需要時間的

通過datetime類型分組:

耗時:0.176s

通過timestamp類型分組:

耗時:0.173s

結論 在InnoDB存儲引擎下,通過時間分組,性能timestamp > datetime,但是相差不大

sql排序速率測試

通過datetime類型排序:

耗時:1.038s

通過timestamp類型排序

耗時:0.933s

通過bigint類型排序

耗時:0.775s

結論 在InnoDB存儲引擎下,通過時間排序,性能bigint > timestamp > datetime

小結

如果需要對時間字段進行操作(如通過時間范圍查找或者排序等),推薦使用bigint,如果時間字段不需要進行任何操作,推薦使用timestamp,使用4個字節保存比較節省空間,但是只能記錄到2038年記錄的時間有限。


文章來源:騰訊,如涉及到版權問題,請聯系網站管理員刪除!