MySQL中text,longtext,mediumtext区别
文章目录
- 一、思维导图
- 二、MySQL 文本数据类型概览
- 三、字节限制不同
- 四、I/O 不同
- 五、行迁移不同
一、思维导图
二、MySQL 文本数据类型概览
- 数据类型及存储长度
- TEXT:可存储最大长度为 65,535(2^16 - 1)个字符的文本数据,超长度 MySQL 会抛错。
- MEDIUMTEXT:可存储最大长度为 16,777,215(2^24 - 1)个字符的文本数据,比 TEXT 能存更多数据。
- LONGTEXT:可存储最大长度为 4,294,967,295(2^32 - 1)个字符的文本数据,是存储数据最多的文本类型。
- 存储数据越大,占用存储空间越大,设计数据库时应按需选择,避免浪费空间。
- 编码及适用场景
- 这些数据类型是 Unicode 字符集(UTF - 8)编码,存储非 Unicode 字符集数据可选择 CHAR 或 VARCHAR。
- 其他区别
- 存储空间:存储相同数据时,LONGTEXT 占用空间比 MEDIUMTEXT 和 TEXT 大。
- 性能:LONGTEXT 执行查询和排序等操作耗时更长。
- 索引:文本类型数据大,使用索引需用前缀索引或全文索引等技术避免性能问题。
- 数据类型:TEXT 是 TINYTEXT、TEXT、MEDIUMTEXT 和 LONGTEXT 中存储数据最小的,存小文本数据可用 TINYTEXT。
- 总结:设计数据库按需选类型,小文本用 TINYTEXT,大量文本用 MEDIUMTEXT 或 LONGTEXT,用索引注意性能。
三、字节限制不同
- text 字段类型:字节限制为 65535 字节。
- longtext 字段类型:字节限制为 2147483647 字节。
- mediumtext 字段类型:字节限制为 16777215 字节。
四、I/O 不同
- text 字段类型:比 longtext、mediumtext 更不容易造成多余的 I/O。
- longtext 字段类型:比 text、mediumtext 更容易造成多余的 I/O。
- mediumtext 字段类型:比 text 更容易造成多余的 I/O,比 longtext 更不容易造成多余的 I/O。
五、行迁移不同
- text 字段类型:比 longtext、mediumtext 更容易进行行迁移。
- longtext 字段类型:比 text、mediumtext 更不容易进行行迁移。
- mediumtext 字段类型:比 text 更不容易进行行迁移,比 longtext 更容易进行行迁移。