基于mysq字段選擇的詳解
mysql支持很多字段類型,包括數(shù)值類型、日期/時(shí)間類型和字符串(字符)類型;在使用時(shí)需要考慮到存儲(chǔ)空間,存儲(chǔ)效率;
幾種列類型描述使用了下述慣例:
· M
表示最大顯示寬度。最大有效顯示寬度是255。
· D
時(shí)間類型:datetime(8bytes),timestamp(4bytes)
字符類型:
VARCHAR(M),L+1個(gè)字節(jié),其中L<= M且0 <=M<= 65535,不宜把M設(shè)置得過(guò)大,因?yàn)樵趦?nèi)存中會(huì)計(jì)算實(shí)際長(zhǎng)度,這個(gè)計(jì)算時(shí)需要消耗資源的;
CHAR(M)M個(gè)字節(jié),0 <= M<= 255
BINARY(M),M個(gè)字節(jié),0 <= M <= 255
VARBINARY(M),L+1個(gè)字節(jié),其中L <= M且0<= M <= 255
ENUM('value1','value2',...),1或2個(gè)字節(jié),取決于枚舉值的個(gè)數(shù)(最多65,535個(gè)值),調(diào)整比較復(fù)雜,需要先drop在create;在枚舉值小于255時(shí),占1個(gè)字節(jié),大于255時(shí)占2個(gè)字節(jié);
SET('value1','value2',...)1、2、3、4或者8個(gè)字節(jié),取決于set成員的數(shù)目(最多64個(gè)成員),1-8占1個(gè)字節(jié),9-16占2個(gè)字節(jié),17-24占3個(gè)字節(jié),25-32占4個(gè)字節(jié),33-64占8個(gè)字節(jié);
整型類型:
tinyint(8),一個(gè)字節(jié)
smallint(16),2個(gè)字節(jié)
mediumint(24),3個(gè)字節(jié)
int(32),4個(gè)字節(jié)
bigint(64),8個(gè)字節(jié)
實(shí)型類型:
float(4bytes)
Float(M,D) 單精度浮點(diǎn)型,精確到小數(shù)點(diǎn)后面6位,雙精度double(M,D)精確到小數(shù)點(diǎn)后面13位;
float 內(nèi)存如何存儲(chǔ)
類型
存儲(chǔ)位數(shù)
總位數(shù)
偏移值
數(shù)符(S)
階碼(E)
尾數(shù)(M)
(offset)
短實(shí)數(shù)(float)
1
8
23
32
127
長(zhǎng)實(shí)數(shù)(double)
1
11
52
64
1023
Float怎么存儲(chǔ)
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)
組合起來(lái)就是:
S E M
0 10000101 111 0110 1110 1001 0111 1001
整型類型:
Decimal(M,D)占M+2個(gè)字節(jié),小數(shù)點(diǎn)和符號(hào)需要
各自占一個(gè)字節(jié);
DECIMAL 可能的最大取值范圍與DOUBLE 一樣
,但是其有效的取值范圍由M 和D 的值決定,存蓄
的方式是字符串;
Decimal(M,D)占M+2個(gè)字節(jié),小數(shù)點(diǎn)和符號(hào)需要各自占一個(gè)字節(jié);
DECIMAL 可能的最大取值范圍與DOUBLE 一樣,但是其有效的取值范圍由M 和D 的值決定,存蓄的方式是字符串;
相關(guān)文章
linux下mysql5.7.17最新穩(wěn)定版本安裝教程
這篇文章主要為大家詳細(xì)介紹了linux上mysql5.7.17最新穩(wěn)定版本安裝教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-02-02關(guān)于MySQL分區(qū)表的一個(gè)性能BUG
這篇文章主要給大家講訴MySQL分區(qū)表的一個(gè)性能BUG,也就是使用分區(qū)表進(jìn)行數(shù)據(jù)查詢/加載的時(shí)候比普通表的性能下降了約50%,下面就來(lái)講將對(duì)此的解決辦法,需要的朋友可以參考以下內(nèi)容2021-09-09Mysql(MyISAM)的讀寫互斥鎖問(wèn)題的解決方法
最近因?yàn)閿?shù)據(jù)庫(kù)讀的請(qǐng)求增加,出現(xiàn)了比較嚴(yán)重的讀寫鎖問(wèn)題,由于主從分離,主服務(wù)器很快的執(zhí)行完了寫入的操作,但從庫(kù)由于有大量的select的查詢,會(huì)被這些來(lái)自主輔同步的update,insert嚴(yán)重堵塞,最后造成所有的Mysql從庫(kù)負(fù)載迅速上升。2011-09-09MySql樹形結(jié)構(gòu)(多級(jí)菜單)查詢?cè)O(shè)計(jì)方案
本文主要介紹了MySql樹形結(jié)構(gòu)(多級(jí)菜單)查詢?cè)O(shè)計(jì)方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03介紹使用WordPress時(shí)10個(gè)常用的MySQL查詢
這篇文章主要介紹了介紹使用WordPress時(shí)10個(gè)常用的MySQL查詢,許多用戶在使用WordPress時(shí)選擇使用MySQL,本文的整理對(duì)于剛剛上手的用戶來(lái)說(shuō)非常有用,需要的朋友可以參考下2015-04-04