我已经读过很多遍了,但是还没有找到一个答案来回答我的问题。。。
我现在有一个数据库utf8mb4,想在列中存储一个字符串(长度200-250个字符)。
VARCHAR(200-250)现在可以用于utf8mb4还是必须使用文本?
提前谢谢。

最佳答案

请参见MySQL文档上的this article
在表结构方面,这些是主要的潜力
不相容性:
对于可变长度字符数据类型(VARCHAR和文本
类型),UTF8Mb4字符的最大允许长度较少。
对于utf8mb3列,列数大于。
对于所有字符数据类型(CHAR、VARCHAR和文本类型)
可索引的最大字符数不太多。
对于utf8mb3列,列数大于。
因此VARCHAR字段将不支持列数据,因为它只为3字节字符保留空间(顾名思义,utf8mb4使用4字节)。
在这种情况下,您需要使用另一种列类型,如TEXT
引用的文章有更多的细节,我建议你读一读。
编辑:
阅读更多内容,我发现VARCHAR数据类型实际上支持65535个字符(从MySQL 5.0.3开始)和65535个字节。所以字符的最大长度是65535/4=16383字符。
所以是的,您的VARCHAR列将支持250个字符长的字符串。

关于mysql - MySQL VARCHAR或TEXT,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53069308/

10-15 22:49