眉山市网站建设_网站建设公司_域名注册_seo优化
2026/1/11 8:39:13 网站建设 项目流程

MySQL 单行数据的最大存储限制,并非一个固定值,而是由存储引擎、页大小、行格式、列类型共同决定的动态上限。


一、InnoDB 行大小硬限制

1.官方文档定义
  • 最大行大小略小于 16KB 的页大小(默认 16,384 字节)
  • 实际可用空间
    ≈ 8,000 字节(因页头/尾、系统列、预留空间占用)

关键公式
有效行大小 ≤ 16,384 - 页开销(~200B) - 系统列(13B) - 预留空间(~7,000B)

2.为什么不是 16KB?
  • 页结构开销
    • 页头/尾:约 120 字节
    • 事务ID + 回滚指针:13 字节
    • NULL 位图(列数+7)/8字节
    • 变长字段长度列表:1~2 字节/字段
  • 预留空间
    InnoDB 为行更新预留约 50% 页空间(防页分裂)

⚠️实测上限
单行总数据(不含溢出)≤ 7,950 字节(MySQL 8.0)


二、突破限制:溢出页(Off-page Storage)

当行数据超过阈值,InnoDB 自动将大字段存入溢出页(Overflow Pages)

列类型溢出阈值存储方式
TEXT/BLOB> 768 字节主键页存 20 字节指针,数据存独立页
VARCHAR> 768 字节同 TEXT
JSON总大小 > 768 字节同 TEXT

效果
逻辑行大小无硬上限(受限于innodb_page_size和磁盘空间)

示例:
CREATETABLEt(idINTPRIMARYKEY,contentLONGTEXT-- 可存 4GB 数据);
  • 主键页:仅存id+ 20 字节指针
  • 溢出页content数据分散在多个 16KB 页中

三、各列类型的存储上限

类型最大值磁盘占用
TINYINT1 字节1B
INT4 字节4B
BIGINT8 字节8B
VARCHAR(N)65,535 字节实际长度 + 1~2B 长度前缀
TEXT65,535 字节同 VARCHAR
MEDIUMTEXT16MB指针 + 溢出页
LONGTEXT4GB指针 + 溢出页
JSON≈ 1GB以 TEXT 形式存储

⚠️注意
所有列总和 ≤ 65,535 字节(MySQL 行格式限制,非 InnoDB)


四、行格式(ROW_FORMAT)的影响

格式溢出策略适用场景
COMPACT> 768 字节溢出旧版本兼容
DYNAMIC所有大字段直接溢出推荐!减少主键页碎片
REDUNDANT已废弃

最佳实践

CREATETABLEt(...)ROW_FORMAT=DYNAMIC;

五、极端情况测试

1.最大单行(无溢出)
-- 创建接近 8KB 的行CREATETABLEmax_row(c1VARCHAR(7000),c2VARCHAR(900))ROW_FORMAT=DYNAMIC;
  • 插入INSERT INTO max_row VALUES (REPEAT('a',7000), REPEAT('b',900));
  • 结果:成功(总 ≈ 7,900B)
2.最大单行(含溢出)
-- 存储 1GB JSONCREATETABLEhuge_json(idINTPRIMARYKEY,dataJSON)ROW_FORMAT=DYNAMIC;INSERTINTOhuge_jsonVALUES(1,LOAD_FILE('/path/to/1gb.json'));
  • 结果:成功(主键页仅存指针)

六、生产建议

  1. 避免宽表

    • 单行 > 4KB 会降低 Buffer Pool 效率
    • 将大字段拆到单独表
  2. 强制 DYNAMIC 格式

    SETGLOBALinnodb_file_format=Barracuda;SETGLOBALinnodb_file_per_table=ON;CREATETABLEt(...)ROW_FORMAT=DYNAMIC;
  3. 监控溢出页

    -- 查看溢出页使用SELECT*FROMINFORMATION_SCHEMA.INNODB_SYS_TABLESPACESWHERENAME='your_db/your_table';

总结

  • 物理行上限≈ 8,000 字节(主键页内)
  • 逻辑行上限4GB(通过溢出页)
  • 工程原则
    “单行越小,Buffer Pool 效率越高;大字段必须溢出”
    ROW_FORMAT=DYNAMIC+ 拆分宽表,方能兼顾容量与性能。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询