MySQL數(shù)據(jù)庫的文本類型包括CHAR、VARCHAR、TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT六種,字符集支持多種類型,如ASCII、UTF-8等。
其中CHAR和VARCHAR為定長和可變長的字符串類型,可以存儲(chǔ)最多255字節(jié)的數(shù)據(jù),但與VARCHAR不同的是,CHAR類型的數(shù)據(jù)在存儲(chǔ)時(shí)會(huì)被右側(cè)填充,以達(dá)到指定長度。TINYTEXT為可變長字符串類型,可存儲(chǔ)最多255字節(jié)的數(shù)據(jù);TEXT、MEDIUMTEXT和LONGTEXT是可變長字符串類型,可以存儲(chǔ)最多65,535字節(jié)、16,777,215字節(jié)和4,294,967,295字節(jié)的數(shù)據(jù)。
CREATE TABLE my_table ( name CHAR(50) CHARACTER SET utf8, age TINYTEXT CHARACTER SET utf8 );
在創(chuàng)建表時(shí),可以指定字符集來保存對(duì)于字符集有要求的數(shù)據(jù)。在存儲(chǔ)數(shù)據(jù)時(shí)也可根據(jù)需要選擇具體的文本類型,如CHAR類型在數(shù)據(jù)較小時(shí)占用空間更少,但對(duì)于較大的數(shù)據(jù)存儲(chǔ)建議使用TEXT類型。同時(shí)也要考慮到數(shù)據(jù)的查詢和更新效率,因?yàn)門EXT類型的數(shù)據(jù)往往需要進(jìn)行大量的IO操作。