你是否會誤以為 MySQL 定義欄位用的 INT(11) 的 11 就是字元長度,其實不是 !
INT 佔 4 bytes,如果定義 屬性 為 UNSIGNED,值就可以介於 0 ~ 4294967295 之間,否則為 -2147483648 ~ 2147483647 之間,
而 INT(10) 或 INT(11) 的 10 與 11,它~~~~~~~ 沒什麼大~~的差別,就算是 2 值也是上面的限制,如果要更多的字元長度就使用 BITINT 吧
再來,char(255) 與 varchar(255) 的 255 就是字元的長度了,代表只能 0~255 個字,不管中文英文都是 1 個,
而 char 與 varchar 的差別就是存儲大小與執行速度,char 是大小先就那麼大,而 varchar 大小是慢慢長大,所以執行速度就是 char 比較快,varchar 還要去算它的大小是多少
另外
TEXT 長度就只有大小限制
TINYTEXT 256 bytes
TEXT 65,535 bytes ~ 64kb
MEDIUMTEXT 16,777,215 bytes ~ 16MB
LONGTEXT 4,294,967,295 bytes ~ 4GB
PS: 我不是 DBA
留言