字段text类型说明
MySQL 里的 TEXT 就是拿来存大段文字的,文章正文、用户留言、脚本日志都用它。它不像 VARCHAR 要写长度,写了也白写,直接被忽略。
按容量分四种:TINYTEXT 255 字节,TEXT 65535 字节约 64KB,MEDIUMTEXT 16MB,LONGTEXT 4GB。字节不等于字数,utf8mb4 一个汉字最多占 4 字节,所以 TEXT 实际只能放一万六千个汉字左右,别以为能塞六万多字。
几个坑记住:TEXT 不能设默认值;建普通索引必须带前缀长度,否则报错;表里有大字段时别用 SELECT *,取出来很吃内存。
-- 四种 text 的实际用法
CREATE TABLE article (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(100) NOT NULL,
content TEXT, -- 约 64KB,日常够用
memo TINYTEXT, -- 255 字节,短备注
raw MEDIUMTEXT -- 16MB,存采集的原始数据
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 给 text 建索引必须指定前缀长度
ALTER TABLE article ADD INDEX idx_content (content(50));
-- 只取需要的列,别 SELECT *
SELECT id, title FROM article WHERE id = 1;
标签:MySQL,TEXT类型,数据库字段
说点什么 0