我已经读过很多遍了,但是还没有找到一个答案来回答我的问题。。。
我现在有一个数据库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/