在MySQL 中解碼VARCHAR 長度和UTF-8
在MySQL 中建立VARCHAR 欄位時,會出現關於資料儲存容量的常見資料儲存容量的常見誤解。使用者可以假設 UTF-8 表中的 VARCHAR(32) 字段可以容納 32 個位元組或 32 個字符,以較大者為準。然而,實際的解釋取決於所使用的 MySQL 版本。
版本 4 與版本 5
在 4.1 之前的 MySQL 版本中,VARCHAR 長度以位元組為單位。因此,VARCHAR(32) 欄位最多可以儲存 32 個位元組的資料。但是,在 MySQL 版本 5 及更高版本中,VARCHAR 長度以字元單位解釋。因此,UTF-8 表中的 VARCHAR(32) 欄位最多可以容納 32 個字元。
MySQL 官方文件
為了澄清這個問題,MySQL 官方文件5 文件中明確指出:
「MySQL 以字元為單位解釋字元列定義中的長度規格。 TEXT 類型。例如,UTF-8 字元每個字元最多需要三個位元組。因此,使用 UTF-8 的 VARCHAR 欄位最多可聲明為 21,844 個字元。這受到最大行大小 65,535 位元組的限制。
以上是MySQL 如何解釋 UTF-8 表中的 VARCHAR 長度?的詳細內容。更多資訊請關注PHP中文網其他相關文章!