2009-09-06 36 views
0

我有名爲「摘要」(tinytext,utf8_turkish_ci)的列。我知道它可以存儲255字節也255字符。但是,如果我使用像Unicode這樣的Unicode字符,那麼存儲容量自然會減少。如果我的訪問者輸入長度爲250字符的unicode文本,則最後的字符正在刪除。我的總結欄總是長達250個字符。我能做什麼 ?謝謝。MySQL UTF文本容量

回答

4

您可以改爲將其轉成varcharvarchar的長度限制爲您指定的個字符的數量。 tinytext字段的長度限制爲255 字節

+0

附加說明:在MySQL 5中,Innodb將只允許767字節的密鑰,儘管不是密鑰一部分的字段可能會更長。由於OP使用的是utf8字符集,而MySQL使用每個字符3個字節,因此密鑰中的'varchar'字段將具有255.67個字符的限制,實際上這意味着最多255個字符。由於OP只需要250個字符,這應該足夠了。 – 2009-09-06 04:47:06

0

UTF-8是可變長度編碼。一個字符可以編碼成1到4個字節(理論上限制是6,但我還沒有遇到它)。如果您只處理土耳其語,則每個字符只需要2個字節。所以你需要500字節的列大小來支持250個字符,所以你應該使用類似varchar(500)text的東西。