datetime是8個位元組?
之前的印象中datetime一直是佔用8個位元組,從來沒去關注過是否正確,在解析資料檔案的時候,datetime欄位後面跟了一個timestamp欄位,在解析timestamp時候,總是不對,後來發現是datetime欄位解析有問題。
datetime欄位的儲存
1 bit sign (used when on disk) 17 bits year*13+month (year 0-9999, month 0-12) 5 bits day (0-31) 5 bits hour (0-23) 6 bits minute (0-59) 6 bits second (0-59) 24 bits microseconds (0-999999) Total: 64 bits = 8 bytes
如果datetime沒有microseconds部分,那麼這3個位元組是沒有的,也就是隻佔用了5個位元組。
測試表
master [localhost] {msandbox} (test) > show create table dba_user6\G *************************** 1. row *************************** Table: dba_user6 Create Table: CREATE TABLE `dba_user6` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(100) DEFAULT NULL COMMENT '使用者名稱', `class` varchar(100) DEFAULT NULL COMMENT 'class', `account` int(11) DEFAULT NULL, `version` int(11) DEFAULT NULL, `ctime` datetime DEFAULT NULL, `ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT
所以跟開發要講明白些,datetime沒有 microseconds是5個位元組,有是8個位元組。
不要總是說datetime 佔用空間大
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25719946/viewspace-2919360/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- int 8 佔一個位元組,為什麼範圍是-128 到 127?
- 什麼是位元組碼?python位元組碼詳細介紹!Python
- GBase 8a中一個字元佔用位元組數說明字元
- 位元組跳動近日申請多個“位元組遊戲”商標遊戲
- utf-8 不用考慮位元組序(轉)
- Python學習之 datetime模組Python
- utf-8字元所佔位元組數字元
- Python基礎12(模組與datetime模組)Python
- python時間模組time和datetimePython
- 位元組流
- 位元組碼
- 以高位元組地址為字地址是什麼
- 在位元組,A/B 實驗是這麼做的!
- JAVA——一個漢字佔用多少位元組?Java
- Java char 型別究竟佔幾個位元組?Java型別
- Java陣列物件佔用多少個位元組?Java陣列物件
- 而UTF8中文佔用位元組是不同的,從而造成以上的錯誤
- 位元組碼指令
- Java 位元組碼Java
- 位、位元組、字
- 寬位元組注入
- 張一鳴是如何練就位元組跳動的
- 突破etcd限制 位元組自研K8s儲存KubeBrainK8SAI
- 【C/C++】5.位元組對齊和位元組填充C++
- 位元組跳動拿到首個遊戲版號遊戲
- 使用javap分析Java位元組碼的一個例子Java
- 一個位元組都得省的年代,人們是如何創造遊戲人聲的?遊戲
- 得到字串 位元組 長度 中文 兩個字元 英文一個字元字串字元
- GitHub 8k Star,一作實習生,位元組這個大模型成果被蘋果選中了Github大模型蘋果
- modbus和位元組序
- 位元組碼基礎
- 位元組陣列流陣列
- 緩衝位元組流#
- 位元組碼詳解
- 位元組OpenDay總結
- JS 位元組流 解析JS
- golang 位元組對齊Golang
- 位、位元組和字