MySQL VARCHAR 長度與UTF-8:位元組與字元
在MySQL 表中建立VARCHAR 欄位時,了解如何使用VARCHAR 欄位至關重要解釋指定的長度。在 4.1 之前的 MySQL 版本中,VARCHAR 長度以位元組為單位定義。但是,從 MySQL 4.1 開始,長度以字元為單位計算。
UTF-8 表中的 VARCHAR(32) 欄位表示 32 個字符,而不是 32 個位元組。這是因為 UTF-8 是一種變長編碼,每個字元可以佔用多個位元組(最多 4 個位元組)。
版本5 的MySQL 官方文件指出:
「MySQL以字元單位解釋字元列定義中的長度規格。這適用於CHAR、VARCHAR 和TEXT 類型。」
但是,VARCHAR 的最大長度。列也受到 UTF-8 的影響。在 MySQL 5.0.3 及更高版本中,有效最大長度受到行大小(65,535 位元組)和使用的字元集的限制。
例如,由於 UTF-8 字元每個字元最多需要 3 個位元組,使用 UTF-8 的 VARCHAR 欄位最多可以聲明 21,844 個字元。這是因為 21,844 乘以 3(每個字元的位元組數)為 65,532,在最大行大小內為其他列資料留下了 3 個位元組的緩衝區。
以上是VARCHAR 長度如何在 MySQL 中使用 UTF-8:位元組或字元?的詳細內容。更多資訊請關注PHP中文網其他相關文章!