亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL中怎么選擇時間類型存儲格式

發布時間:2021-08-05 15:28:48 來源:億速云 閱讀:140 作者:Leah 欄目:MySQL數據庫

本篇文章給大家分享的是有關MySQL中怎么選擇時間類型存儲格式,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。


int型:
存儲長度: 4字節
表示范圍: date('Y-m-d H:i:s', 4294967295) 最大到 2106-02-07 14:28:15 ,如果一個企業活過這么久,就需要數據庫考慮 bigint 或者datetime類型了。
是否為空: 可以為空,但是業務邏輯設計建議設置非空
存儲格式: 數值類型存儲,節省空間
時區相關: 與時區無關
默認值 :  可以根據業務邏輯設置默認值為某個時間。
優點
  1 類型簡單,cpu處理該字段的運算會比較快,占用字節小,節省空間。
  2 查詢速度快。

datetime:
存儲長度: 8字節
表示范圍:'1000-01-01 00:00:00'-'9999-12-31 23:59:59'
是否為空: 允許為空值,可以自定義值,且insert和update操作不會自動修改其值。
儲存格式: 以實際格式存儲(Just stores what you have stored and retrieves the same thing which you have stored.)
時區相關: 與時區無關
默認值  : 不指定默認值的時候 MySQL會初始化為'0000-00-00 00:00:00'
mysql> CREATE TABLE `tm` (
    -> `d1` int(10) unsigned NOT NULL default '0',
    -> `d2` timestamp NOT NULL default CURRENT_TIMESTAMP,
    -> `d3` datetime NOT NULL,
    -> `d4` timestamp NOT NULL default CURRENT_TIMESTAMP on update current_timestamp
    -> );
Query OK, 0 rows affected (0.02 sec)
mysql> insert into tm(d1,d4) values(1458612980,now());
Query OK, 1 row affected, 1 warning (0.00 sec)
mysql> select * from tm;
+------------+---------------------+---------------------+---------------------+
| d1         | d2                  | d3                  | d4                  |
+------------+---------------------+---------------------+---------------------+
| 1458612980 | 2016-03-22 10:16:20 | 2016-03-22 15:21:21 | 2016-03-22 10:16:20 |
| 1458612980 | 2016-03-22 15:22:17 | 0000-00-00 00:00:00 | 2016-03-22 15:22:17 |
+------------+---------------------+---------------------+---------------------+
2 rows in set (0.00 sec)
優點 顯示直觀,不需使用函數做轉換
 
timestamp:
存儲長度: 4字節
是否為空: 允許為空值,但是不可以自定義值,所以為空值時沒有任何意義。
表示范圍:'1970-01-01 00:00:01'-'2038-01-19 03:14:07
是否為空: 允許為空值,可以自定義值,且insert和update操作不會自動修改其值。
存儲格式: 值以UTC格式保存,即以毫秒為單位的數字存儲 ( it stores the number of milliseconds)
時區相關: 和時間相關,時區轉化 ,存儲時對當前的時區進行轉換,檢索時再轉換回當前的時區。
默認值 :  可以設置為CURRENT_TIMESTAMP(),當前的系統時間。
gmt_modified timestamp not null default '0000-00-00 00:00:00' on update current_timestamp
字段屬性加上 "on update current_timestamp",
1 在更新記錄時不指定update timestamp字段的值,數據庫會自動修改gmt_modified的值為當前系統的時間,
2 在插入記錄時不指定timestamp字段和timestamp字段的值,插入后該字段的值會自動變為當前系統時間。
相比于 init 類型的 可以自動更新為系統當前時間,其他并無優勢。
三 總結
 對于如何選型 ,有如下三種層面 性能,存儲空間,時間范圍 的考慮。這里我從時間范圍和存儲空間層面推薦使用 int 或者bigint ,datetime 類型。bigint和datetime 占用的空間一樣,唯一的差異是在性能上可能存在差異。當然如果你服務的企業有存在  102年的夢想,那我建議直接使用 datetime類型。2038年的時候,雖然我們(80后)估計已經在家養老或者身居高層,為了避免給后來的運維人員留坑,建議不要使用 timestamp 字段。

以上就是MySQL中怎么選擇時間類型存儲格式,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

马边| 宝丰县| 亳州市| 香港| 土默特右旗| 清徐县| 莲花县| 陈巴尔虎旗| 义乌市| 赤峰市| 潼南县| 泗水县| 新邵县| 仙桃市| 德庆县| 禄丰县| 南雄市| 宾阳县| 广昌县| 石城县| 台安县| 阿勒泰市| 丰台区| 砚山县| 鹿邑县| 宁波市| 台湾省| 商南县| 庄河市| 苍溪县| 泰宁县| 遵义县| 屏边| 东乡县| 德阳市| 调兵山市| 正安县| 芒康县| 宁夏| 碌曲县| 宝应县|