关于 text 和 varchar 类型选择

关于 TiDB库表设计和使用规范,text 和varchar的选择 这里没有看懂

链接:专栏 - TiDB库表设计和使用规范 | TiDB 社区

大字段本身也不推荐存数据库。不过没看懂是哪里不理解?

为什么用 varchar(10000)也不使用 text 类型

之前的版本支持不太好咯…

如果有这块的需求,可以用新版做个poc 测试下

这个也是别人的建议,我觉得也能用现在

:joy:如果产品是同时支持MySQL和TiDB数据库的话,建议建表的时候老老实实的用text,因为用varchar(10000),在MySQL里面就报错了……亲身经历……

mysql varchar最长65535 10000应该没问题

在utf8mb4字符集编码下,一个字符占用4个字节. 我理解是 varchar 10000 没有超过 6mb 限制吧。text 本身没有这个限制就很担心咯。

:joy:表里不止这一个字段呀~
你看这个表,它又长又宽~

也不是大字段,比如我们业务上这个字段存的是一个多选属性的值,那就不知道能存多少数据,有的开发以前都是直接搞varchar(max),到这边之后没有max了,就搞varchar(10000)什么的,实际可能也就用几十的长度,但理论上是可能有人会多选几个值达到几万的长度。

太大的字段用varchar就不合适,直接插入就报错了

length 算下 max 就知道多大了,整改吧。本身也不推荐大字段存关系型数据库中。

都不用算,我们是做项目的,到项目上执行一下脚本就知道有没有超长,哈哈,超长了就改成text

还是建议按业务需求,用多少设置多少,设置太大了不太好

嗯嗯,是的

这玩意有时候不好预估,保不齐哪天就报错了,到时候修改就比较麻烦

tidb单行和列有最大大小限制,6M,它这也是防止行太大吧

此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。