MySQL: Large VARCHAR vs. TEXT?
MySQL: Large VARCHAR vs. TEXT?
我在MySQL中有一个消息表,记录用户之间的消息。除了典型的id和消息类型(全部为整数类型)之外,我需要将实际消息文本保存为VARCHAR或TEXT。我设定了前端限制为3000个字符,这意味着消息永远不会被插入到db中的长度超过此限制。
那么,采用VARCHAR(3000)或TEXT有什么理由呢?只是写VARCHAR(3000)感觉有些不直观。我已经通过Stack Overflow上的其他类似帖子,但获取针对这种常见消息存储的特定意见将是好的。
admin 更改状态以发布 2023年5月24日
你能预测用户输入的长度吗?
VARCHAR(X)
最大长度:可变,最多65,535字节(64KB)
案例:用户名、电子邮件、国家、主题、密码
TEXT
最大长度:65,535字节(64KB)
案例:消息、电子邮件、评论、格式化文本、HTML、代码、图像、链接
MEDIUMTEXT
最大长度:16,777,215字节(16MB)
案例:大型JSON正文、短到中等长度的书籍、CSV字符串
LONGTEXT
最大长度:4,294,967,29字节(4GB)
案例:教科书、程序、数年的日志文件、哈利·波特与火焰杯、科学研究日志
关于这个问题,还有更多信息,请参见此问题。