mysql中longtext字段的返回
最近开发中用到了longtext这种字段。在mysql中该字段的最大长度为4g
如下图所示


开发中遇到的一个问题就是。例如有个article表,然后我们的页面要将数据以列表的形式展示到前端(只显示几个字段,如作者,标题等等,例如放到table中显示多条记录),但是是将该表中的所有信息都查出来,然后当用户点击某条记录的时候,会跳到详情页,在显示出详细的信息。
这样当数据量比较多的时候,或者文本的内容比较大的时候,就出现问题了。
随着页面中的数据量增加,页面加载时间就会变长,直到最终显示数据列表。这会严重影响使用效果。
解决方法
当然是sql语句的问题了,当像上面这样查询整个列表的时候,可以不查询longtext这个字段,将其他的字段查询出来。然后当用户点击某条数据时,再根据该条数据的id到数据库去单查这条数据,这时再将longtext给查出来即可。
说到这里,还要说一种情况,就是有时候从数据库中查到的数据封装到实体类中,怎么也取不到某个字段的值,就是null。必须检查SQL查询语句,确保返回结果中该字段已经被映射封装到对应的类字段上。
一般情况下都是结果集中没有封装该字段的原因。
Mysql中Text字段的范围
text:存储可变长度的非Unicode数据,最大长度为2^31-1个字符。
text列不能有默认值,存储或检索过程中,不存在大小写转换,后面如果指定长度,不会报错误,但是这个长度是不起作用的,意思就是你插入数据的时候,超过你指定的长度还是可以正常插入。
在 MySQL 中,列类型为 TEXT 的最大长度为 65,535 个字符(即 2 的 16 次方减 1)。
如果你觉得text长度不够,可以选择
MEDIUMTEXT最大长度为16,777,215。
LONGTEXT最大长度为4,294,967,295
Text主要是用来存放非二进制的文本,如论坛帖子,题目,或者百度知道的问题和回答之类。
需要弄清楚的是text 和 char varchar blob这几种类型的区别。
mysql 修改 text字段长度_mysql的text字段长度?mysql数据库中text字段长度不够的问题…
类型是可变长度的字符串,最多65535个字符;
可以把字段类型改成MEDIUMTEXT(最多存放16777215个字符)或者LONGTEXT(最多存放4294967295个字符).
汉字在utf8mb4中占用几个字符
答:3个
MySQL官方手册中对于utf8mb4的解释是

现有数据库版本默认的utf8都为utf8mb3,注意其中所说的"相同的长度"。
所以在utf8mb4下,英文占用1个字节,一般汉字占3个字节,emoji表情占4个字节。
结论:数据库和表都设置为utf8mb4。
