2012-10-06 41 views
1

我想在MySql innoDB表中以不同語言(utf-8編碼)存儲短語。平均數據長度總是小於100個字,所以這將是我的最大限制(14個字符+ blanspace),這使得每個短語的最大長度爲1500個字符。VARCHAR(1500)VS TEXT | Utf-8編碼

假設MySQL允許超過65000字節,並且每個UTF-8字符將需要約3或4個字節,一個VARCHAR(1500)是可能的。 [1500字符* 4字節/字符= 60000字節]

我的問題是,這和使用TEXT值有什麼區別?我知道VARCHAR接受默認值(不同於NULL),但我需要更多的差異...什麼是更好(更有效的排序和更有效的存儲 - 反之亦然)?

回答

1

我相信VARCHAR和TEXT之間的主要區別在於VARCHAR是一個固定的大小。這樣可以使字段上的任何操作比處理任何類型的動態大小的數據更有效。

除此之外,不知道有什麼區別。隨意切入! :)

+0

嗯? 'VARCHAR'正是名字所暗示的,*變量*。將其轉換爲固定大小的唯一實例是排序時。 –