最近有一批 json 文件需要导入到 MySQL 中,因为 json 文件过大,无法准确的评估字段长度,所以决定在 MySQL 中建表的时候把字段类型都设置为了 text,导入成功之后再评估一下长度,然后修改字段类型。
通过以下语句获取指定列的最大长度
SELECT MAX(LENGTH(ci)) FROM meta_ci;
说明:
length()函数
以字节为单位,返回字符串的长度。如果字段编码为 GBK,那么一个汉字占用 2 个字节,如果字段编码为 UTF-8,那么一个汉字占用 3 个字节。
max()函数
可以获取指定列的最大值。
补充知识
char和varchar的存储范围:
char: 是定长格式的,长度范围是0~255 。
varchar: 这个类型在5.0.3以下的版本中的最大长度限制为 255,而在5.0.3及之后的版本中,varchar数据类型的长度支持到了 65535,也就是说可以存放65532 个字节的数据(起始位和结束位占去了3个字节)。
text类型的存储范围:
TINYTEXT:最大长度为255个byte;
TEXT:最大长度为65535个byte,约为64KB
;
MEDIUMTEXT:最大长度为16,777,215个byte,约为16MB
;
LONGTEXT:最大长度为4,294,967,295个byte,约为4GB
。
Post a comment now »
本文目前不可评论
Sorry, the comment form is closed at this time.
No comments yet.