MySQL 中有一類數據類型被稱為變長類型。變長類型是指其存儲的數據長度是可變的,相比較于固定長度類型更加靈活。在 MySQL 中,最常見的變長類型是 VARCHAR 和 TEXT 類型。
CREATE TABLE `mytable` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(50) NOT NULL, `description` text, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
VARCHAR 類型用于存儲可變長度的字符串,其長度可以在創建表時指定,也可以在插入數據時動態指定。VARCHAR 類型需要占用一定的儲存空間來存儲字符串長度信息,因此當存儲的字符串長度變化較大時,VARCHAR 類型比固定長度類型更加節省空間。
TEXT 類型則可以存儲更長的文本內容,其長度最大可以達到 2^32-1 字節(即約 4GB)。由于存儲的數據長度不固定,因此 TEXT 類型數據需要被分成多個分片進行存儲。
在使用變長類型時需要注意,不同數據庫中對于長度的計算方式可能會有所不同。在 MySQL 中,VARCHAR 類型的實際存儲空間為其長度加上一到兩字節的長度信息。而 TEXT 類型的存儲空間則由其所占據的分片總數決定。因此,在設計數據表時需要考慮到存儲空間的限制。