我已经自己查阅了一些资料,但没有找到能够回答我的问题的答案... 我现在有一个utf8mb4数据库,并且想要在一个列中存储一个200-250个字符长度的字符串。 使用VARCHAR(200-250),对于utf8mb4来说是否足够,还是我需要使用TEXT?
VARCHAR
字段将不支持您的列数据,因为它只为3字节字符保留空间(如名称所示,utf8mb4
使用4字节)。TEXT
。VARCHAR
数据类型实际上支持最多65535个字符(自MySQL 5.0.3以来)和65535字节。因此,实际上字符的最大长度为65535/4 = 16383个字符。VARCHAR
列将支持250个字符长的字符串。如果您想在列中存储250个字符,那么请使用VARCHAR(250)
或更大的类型。您也可以使用TEXT
类型。这并不太重要,因为它们都是可变长度的。我建议使用比您需要的更大的最大大小。通过指定超过所需大小,您不会失去任何东西。
列的大小与编码无关,因为MySQL计算的是字符数,而不是字节数。如果您想存储所有Unicode字符,则必须使用utf8mb4
字符集。
VARCHAR(191)
(也称为767字节)索引问题。请查看我的链接。 - undefined