Mysql優化3 字段型別選擇

2021-08-25 17:02:08 字數 1201 閱讀 2839

1.1盡量少的佔據儲存空間

int整形

型別 大小 範圍(有符號) 範圍(無符號)

tinyint 1位元組 (-128,127) (0,255)

smallint 2位元組 (-32768,32767) (0,65535)

midiumint 3位元組 (-8388608,8838607) (0,16777215)

int 4位元組 (-2147483648,2147483647) (0,4294967295)

bigint 8位元組 (-) ()

時間型別date

time() 時分秒

datetime() 年月日 時分秒

year() 年份

date 年月日

timestamp 時間戳

1.2資料的整合最好是固定長度

char(長度)

固定長度,執行速度快

長度:255字元限制

varchar(長度)

長度不固定,內容比較少的時候要進行部位操作,該型別要保留1-2個位元組儲存當前資料的長度。

長度:65535位元組限制,例如可以儲存65535/3-2個utf8字符集的漢字。

例如儲存手機號碼:char(11)固定長度,選擇char字元

1.3資訊最好儲存為整形的

①時間資訊可以儲存為整形的(時間戳)1

select from_unixtime(時間戳) from 表名 #這條語句查出來的時間直觀明了

②set集合型別:set(籃球,足球,撞球,冰球

③enum列舉型別:enum(,,保密

推薦使用set和enum型別,內部會通過整形資訊參與具體運算、執行。

④ip位址也可以變為整形資訊進行儲存(mysql內部有演算法吧ip變為數字,也可以把數字變為ip)

mysql : inet aton(ip) inet ntoa(數字)

php : ip2long(ip) long2ip(數字)

7 字段型別

整型名稱 儲存空間 取值範圍 tinyint 1 128 127 smallint 2mediumint 3int 4bigint 8無符號設定 在型別之後加上unsigned 浮點型是可能丟失精度的型別,資料有可能不那麼準確 小數型名稱 儲存空間 型別float 4單精度浮點型 double 8雙...

mysql 字段型別選擇

整數型別 型別占用位元組 數值範圍 tinyint 1 128 127 0 255 smallint 2 32768 32767 0 65535 mediumint 3 8388608 8388607 0 16777215 int integer 4 2147483648 2147483647 0 ...

MySQL 字段型別選擇

在對資料進行比較操作時,同樣的資料,字元處理往往比數字處理慢,int要比varchar型別在mysql處理上簡單。比如時間可以考慮用int來儲存,ip位址也可以考慮用bigint來儲存。列的長度越小,利於效能提公升。tinyint適合列舉,0標示男,1標示女,2,標示保密 char與varchar ...