MySQL——大文本存储不要再用VARCHAR了,用TEXT不香么!!!

本文介绍MySQL中的VARCHAR 数据类型和TEXT类型,区别,以及选择的使用场景。

一、VARCHAR

MySQL 中的 VARCHAR 数据类型的最大长度取决于字符集。对于 MySQL 5.7 及以前的版本,最大长度是 255 个字节。从 MySQL 5.7.5 开始,VARCHAR 列可以存储最多 65535 个字节的数据。

对于 MySQL 8.0,VARCHAR 的最大长度支持变得更加宽松,最大可以支持到每行 65,535 字节(对于 ROW_FORMAT=COMPACTROW_FORMAT=DYNAMIC),如果使用 UTF-8 字符集,每个字符可能占用多个字节,因此实际存储的字符数量会更少。
以下是创建一个使用 VARCHAR 数据类型的表的示例,该表在 MySQL 8.0 下使用 UTF-8 字符集,每个字符最多占用 4 个字节:

CREATE TABLE example (
    text VARCHAR(65535) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
);

在上面例子中,VARCHAR(65535) 能存储大约 65535/4 = 16383.75 个字符,考虑到 UTF-8 最多 4 个字节每字符,这是在 MySQL 8.0 下的理论上限。实际可用长度可能会更少,因为还需要额外的空间来存储 VARCHAR 的长度信息。


二、TEXT

MySQL中的TEXT类型有多种子类型,最大长度取决于具体的子类型:

TINYTEXT:最大长度为 255 个字符。

TEXT:最大长度为 65535 个字符。

MEDIUMTEXT:最大长度为 16777215 个字符。

LONGTEXT:最大长度为 4294967295 个字符。

实际上,这些长度是指字符数,如果使用多字节字符集(如 UTF-8),实际存储的数据可能会更大。

下面是TEXT类型列的表的SQL示例:

CREATE TABLE example (
    id INT PRIMARY KEY,
    content TEXT
);

在上面示例中,content列可以存储最大为 65535 个字符的文本数据。如果需要更长的文本,可以选择使用MEDIUMTEXTLONGTEXT类型。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值