知識點記錄源自JavaGuide哥的文章耙替。
1.千萬不要用字符串格式存儲時間
缺點:占用空間大、比較效率低卸例,無法用日期相關(guān)的API進行計算和比較好乐。
2.DateTime和Timestamp抉擇
- DateTime沒有時區(qū)信息心俗,一旦時區(qū)更換傲武,時間就會發(fā)生錯誤。
Timestamp和時區(qū)有關(guān)城榛。會隨服務(wù)器時區(qū)的變化而變化揪利。
一些常用的sql命令
# 查看當前會話時區(qū)
SELECT @@session.time_zone;
# 設(shè)置當前會話時區(qū)
SET time_zone = 'Europe/Helsinki';
SET time_zone = "+00:00";
# 數(shù)據(jù)庫全局時區(qū)設(shè)置
SELECT @@global.time_zone;
# 設(shè)置全局時區(qū)
SET GLOBAL time_zone = '+8:00';
SET GLOBAL time_zone = 'Europe/Helsinki';
- DateTime耗費空間更大。
DateTime耗費8個字節(jié)
TimeStamp耗費4個字節(jié)狠持,但是表示時間范圍更小疟位。
3.數(shù)值型的時間戳會不會更好?
缺點:數(shù)據(jù)可讀性比較差喘垂。
優(yōu)點:跨系統(tǒng)更方便甜刻;排序、比較等操作的效率更高正勒。
《高性能MySQL》一文中推薦使用Timestamp