本篇文章給大家分享的是有關(guān)MySQL中怎么選擇時(shí)間類型存儲(chǔ)格式,小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。
伊金霍洛網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián),伊金霍洛網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為伊金霍洛千余家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站制作要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的伊金霍洛做網(wǎng)站的公司定做!
int型:
存儲(chǔ)長(zhǎng)度: 4字節(jié)
表示范圍: date('Y-m-d H:i:s', 4294967295) 最大到 2106-02-07 14:28:15 ,如果一個(gè)企業(yè)活過(guò)這么久,就需要數(shù)據(jù)庫(kù)考慮 bigint 或者datetime類型了。
是否為空: 可以為空,但是業(yè)務(wù)邏輯設(shè)計(jì)建議設(shè)置非空
存儲(chǔ)格式: 數(shù)值類型存儲(chǔ),節(jié)省空間
時(shí)區(qū)相關(guān): 與時(shí)區(qū)無(wú)關(guān)
默認(rèn)值 : 可以根據(jù)業(yè)務(wù)邏輯設(shè)置默認(rèn)值為某個(gè)時(shí)間。
優(yōu)點(diǎn)
1 類型簡(jiǎn)單,cpu處理該字段的運(yùn)算會(huì)比較快,占用字節(jié)小,節(jié)省空間。
2 查詢速度快。
datetime:
存儲(chǔ)長(zhǎng)度: 8字節(jié)
表示范圍:'1000-01-01 00:00:00'-'9999-12-31 23:59:59'
是否為空: 允許為空值,可以自定義值,且insert和update操作不會(huì)自動(dòng)修改其值。
儲(chǔ)存格式: 以實(shí)際格式存儲(chǔ)(Just stores what you have stored and retrieves the same thing which you have stored.)
時(shí)區(qū)相關(guān): 與時(shí)區(qū)無(wú)關(guān)
默認(rèn)值 : 不指定默認(rèn)值的時(shí)候 MySQL會(huì)初始化為'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)
優(yōu)點(diǎn) 顯示直觀,不需使用函數(shù)做轉(zhuǎn)換
timestamp:
存儲(chǔ)長(zhǎng)度: 4字節(jié)
是否為空: 允許為空值,但是不可以自定義值,所以為空值時(shí)沒(méi)有任何意義。
表示范圍:'1970-01-01 00:00:01'-'2038-01-19 03:14:07
是否為空: 允許為空值,可以自定義值,且insert和update操作不會(huì)自動(dòng)修改其值。
存儲(chǔ)格式: 值以UTC格式保存,即以毫秒為單位的數(shù)字存儲(chǔ) ( it stores the number of milliseconds)
時(shí)區(qū)相關(guān): 和時(shí)間相關(guān),時(shí)區(qū)轉(zhuǎn)化 ,存儲(chǔ)時(shí)對(duì)當(dāng)前的時(shí)區(qū)進(jìn)行轉(zhuǎn)換,檢索時(shí)再轉(zhuǎn)換回當(dāng)前的時(shí)區(qū)。
默認(rèn)值 : 可以設(shè)置為CURRENT_TIMESTAMP(),當(dāng)前的系統(tǒng)時(shí)間。
gmt_modified timestamp not null default '0000-00-00 00:00:00' on update current_timestamp
字段屬性加上 "on update current_timestamp",
1 在更新記錄時(shí)不指定update timestamp字段的值,數(shù)據(jù)庫(kù)會(huì)自動(dòng)修改gmt_modified的值為當(dāng)前系統(tǒng)的時(shí)間,
2 在插入記錄時(shí)不指定timestamp字段和timestamp字段的值,插入后該字段的值會(huì)自動(dòng)變?yōu)楫?dāng)前系統(tǒng)時(shí)間。
相比于 init 類型的 可以自動(dòng)更新為系統(tǒng)當(dāng)前時(shí)間,其他并無(wú)優(yōu)勢(shì)。
三 總結(jié)
對(duì)于如何選型 ,有如下三種層面 性能,存儲(chǔ)空間,時(shí)間范圍 的考慮。這里我從時(shí)間范圍和存儲(chǔ)空間層面推薦使用 int 或者bigint ,datetime 類型。bigint和datetime 占用的空間一樣,唯一的差異是在性能上可能存在差異。當(dāng)然如果你服務(wù)的企業(yè)有存在 102年的夢(mèng)想,那我建議直接使用 datetime類型。2038年的時(shí)候,雖然我們(80后)估計(jì)已經(jīng)在家養(yǎng)老或者身居高層,為了避免給后來(lái)的運(yùn)維人員留坑,建議不要使用 timestamp 字段。
以上就是MySQL中怎么選擇時(shí)間類型存儲(chǔ)格式,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
新聞標(biāo)題:MySQL中怎么選擇時(shí)間類型存儲(chǔ)格式
網(wǎng)站網(wǎng)址:http://www.rwnh.cn/article30/igggpo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、品牌網(wǎng)站制作、虛擬主機(jī)、企業(yè)建站、網(wǎng)站設(shè)計(jì)公司、網(wǎng)頁(yè)設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)