2012-07-10 68 views
2

我決定在MySQL中使用時間而不是字符串日期,但我想知道它是否是一個好主意。比如我用:在MySQL中使用時間而不是字符串CURRENT_DATE是個好主意嗎?

1268557200 

代替:

Sun, 14 Mar 2010 09:00:00 GMT 

感謝。

+0

你會將你的整數存儲在varchars中並且每次解析嗎? – kommradHomer 2012-07-10 06:44:15

+0

不,我會存儲整數int – Alireza41 2012-07-10 06:49:46

+1

多數民衆贊成在精神:) mysql提供了大量的優化和實用程序的準確類型,你想使用。通過使用數據類型而不是以其意義的方式獲得優勢將非常罕見 – kommradHomer 2012-07-10 07:06:48

回答

2

當然是更好的一種特殊類型。數據庫針對這些類型進行了優化。例如。你的字符串有非常多的字符,日期類型是內部整數或長度只需要4或8字節。

1

通常使用最接近表示要存儲的數據的類型是最有意義的。也就是說,如果您的數據是面向日期的,那麼使用面向日期的字段。這些數據在內部存儲爲數字,與字符串相比,訪問,存儲和排序等速度更快。優點是你可以像進入字符串一樣訪問(進出),但是它們工作和排序就像數字一樣。

重要的一點是不要在查詢中使用日期數學。在編寫SQL之前,在代碼之前執行數學(添加天數,減去小時數等)。這可以讓你充分利用索引,查詢緩存等。有些優化可以讓你在SQL中離開日期數學,但在陷入困境的地方可能並不明顯。所以除非你確定你所做的是最優化的,否則一個好的經驗法則就是使計算不在SQL中。

相關問題