MYSQL數據類型----字符串類型mysql
能夠使用命令查看常見編碼所佔字節數:sql
MariaDB [(none)]> SHOW CHARACTER SET;數據庫
查看默認字符: SHOW VARIABLES LIKE 'character%';,發現數據庫編碼均已改爲utf8性能
1. utf8編碼一個字符佔3個字節;編碼 2. gbk編碼一個字符佔2個字節;3d 3. latin1編碼一個字符佔1個字節。code |
更改某個字段的字符集: VARCHAR(20) character set utf8;blog
更改數據庫的字符集: CREATE DATABASE 數據庫名 character set utf8;;ip
char(M) 與 varchar(M) 的理解能夠參考int(M). varchar(n) 表示n個字符,不管漢字和英文,MySql都能存入 n 個字符,僅實際字節長度有所區別。字符串
2 varchar
(1)保存可變長字符串。 理解:比固定長度佔用更少的存儲空間,由於它只佔用本身須要的空間。例外狀況:使用ROW_FORMAT=FIXED建立的MyISAM表,它爲每行使用固定長度的空間,可能會形成浪費。 (2)存儲長度信息。 若是定義的列小於或等於255,則使用1個字節存儲長度值,假設使用latin1字符集,如varchar(10)將佔用11個字節的存儲空間。反過來,varchar(1000),則佔用1002個字節的存儲空間。 (3)節約空間,對性能有幫助。 (4)5.0版本以上,不管是取值仍是保存,MySQL都會保留字符串末尾的空格。 (5)對於變長字段如varchar,mysql會用額外的字節來存儲字符長度,255個字符之內用1個字節存,多於255個字符用2字節存; |