** 原文鏈接 **
本文除了整理常用類型外疗韵,還整理了針對(duì)不用類型的使用技巧和注意細(xì)節(jié),并給出提升查詢效率的一些意見(jiàn)
整數(shù)類型
- TINYINT: 8位
- SMALLINT: 16位
- MEDIUMINT: 24位
- INT: 32位
- BIGINT: 64位
整數(shù)類型有一個(gè)UNSIGNED屬性侄非,標(biāo)識(shí)無(wú)符或者有符蕉汪。比如對(duì)于TINYINT,存儲(chǔ)范圍上逞怨,無(wú)符0-255者疤,有符則是-128-127。無(wú)符號(hào)和有符號(hào)類型使用相同的存儲(chǔ)空間叠赦,具有相同的性能驹马。
問(wèn)題: INT(11)表示的是11位存儲(chǔ)么?
這個(gè)對(duì)于大多數(shù)應(yīng)用是沒(méi)有用的除秀,它只能限制客戶端用來(lái)顯示字符的個(gè)數(shù)糯累,實(shí)際的存儲(chǔ)還是32位。
實(shí)數(shù)類型
MySQL支持精確類型和不精確類型册踩。
FLOAT和DOUBLE支持使用標(biāo)準(zhǔn)的浮點(diǎn)運(yùn)算進(jìn)行近似計(jì)算泳姐。
DECIMAL用于存儲(chǔ)精確的小數(shù),允許小說(shuō)點(diǎn)兩邊最多65個(gè)數(shù)字暂吉。
CPU不支持對(duì)DECIMAL的直接計(jì)算但是遲遲浮點(diǎn)計(jì)算胖秒,MySQL則自己實(shí)現(xiàn)了DECIMAL的計(jì)算,換句話說(shuō)借笙,浮點(diǎn)計(jì)算要比精確計(jì)算快扒怖。
另外浮點(diǎn)類型在存儲(chǔ)同樣范圍的值時(shí)较锡,要比DECIMAL使用更少的空間业稼。因?yàn)樾枰~外的空間和計(jì)算開(kāi)銷,應(yīng)盡量避免使用精確的DECIMAL蚂蕴,除非不可避免低散。可以考慮使用int來(lái)代替DECIMAL骡楼,只需要擴(kuò)大響應(yīng)的倍數(shù)即可熔号。
字符串類型
varchar 和 char
...
** 原創(chuàng)不易完整內(nèi)容請(qǐng)看原文 **