基于mysq字段選擇的詳解
mysql支持很多字段類型,包括數(shù)值類型、日期/時間類型和字符串(字符)類型;在使用時需要考慮到存儲空間,存儲效率;
幾種列類型描述使用了下述慣例:
· M
表示最大顯示寬度。最大有效顯示寬度是255。
· D
時間類型:datetime(8bytes),timestamp(4bytes)
字符類型:
VARCHAR(M),L+1個字節(jié),其中L<= M且0 <=M<= 65535,不宜把M設(shè)置得過大,因為在內(nèi)存中會計算實際長度,這個計算時需要消耗資源的;
CHAR(M)M個字節(jié),0 <= M<= 255
BINARY(M),M個字節(jié),0 <= M <= 255
VARBINARY(M),L+1個字節(jié),其中L <= M且0<= M <= 255
ENUM('value1','value2',...),1或2個字節(jié),取決于枚舉值的個數(shù)(最多65,535個值),調(diào)整比較復(fù)雜,需要先drop在create;在枚舉值小于255時,占1個字節(jié),大于255時占2個字節(jié);
SET('value1','value2',...)1、2、3、4或者8個字節(jié),取決于set成員的數(shù)目(最多64個成員),1-8占1個字節(jié),9-16占2個字節(jié),17-24占3個字節(jié),25-32占4個字節(jié),33-64占8個字節(jié);
整型類型:
tinyint(8),一個字節(jié)
smallint(16),2個字節(jié)
mediumint(24),3個字節(jié)
int(32),4個字節(jié)
bigint(64),8個字節(jié)
實型類型:
float(4bytes)
Float(M,D) 單精度浮點型,精確到小數(shù)點后面6位,雙精度double(M,D)精確到小數(shù)點后面13位;
float 內(nèi)存如何存儲
類型
存儲位數(shù)
總位數(shù)
偏移值
數(shù)符(S)
階碼(E)
尾數(shù)(M)
(offset)
短實數(shù)(float)
1
8
23
32
127
長實數(shù)(double)
1
11
52
64
1023
Float怎么存儲
N (10) = 123.456,
換算成二進(jìn)制表示:
N (2) = 1111011. 01110100101111001
= 1. 11101101110100101111001(...) * 2^6
那么 E = 127 + 6 = 133(10) = 10000101(2)
M = 111 0110 1110 1001 0111 1001 (省略了最高數(shù)字位1, 共23bit)
組合起來就是:
S E M
0 10000101 111 0110 1110 1001 0111 1001
整型類型:
Decimal(M,D)占M+2個字節(jié),小數(shù)點和符號需要
各自占一個字節(jié);
DECIMAL 可能的最大取值范圍與DOUBLE 一樣
,但是其有效的取值范圍由M 和D 的值決定,存蓄
的方式是字符串;
Decimal(M,D)占M+2個字節(jié),小數(shù)點和符號需要各自占一個字節(jié);
DECIMAL 可能的最大取值范圍與DOUBLE 一樣,但是其有效的取值范圍由M 和D 的值決定,存蓄的方式是字符串;
相關(guān)文章
linux下mysql5.7.17最新穩(wěn)定版本安裝教程
這篇文章主要為大家詳細(xì)介紹了linux上mysql5.7.17最新穩(wěn)定版本安裝教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-02-02MySql樹形結(jié)構(gòu)(多級菜單)查詢設(shè)計方案
本文主要介紹了MySql樹形結(jié)構(gòu)(多級菜單)查詢設(shè)計方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03