MySQL行溢出与最大行

#MySQL行溢出与最大行
MySQL每个表有4096个列的硬限制,MySQL表的最大行大小限制为65535字节
-- innodb_page_size
show variables like 'innodb_page_size';
-- 文件格式
show variables like 'innodb_file_format';
-- 行格式
show table status like 'table_name'; 


(一).innodb_page_size, 行溢出
(1).当所有字段总和大于 半个page,varchar就溢出.
 
(2). innodb_文件格式 与 innodb_行格式
    antelope -   Compact / Redundant  羚羊-紧凑/冗余   (768byte)
    是否溢出:列的值为768个字节或更少,则不需要溢出页面(包含text类型)
    溢出方式:数据页保存前768个字节,其余的则存储在溢出页面中
     
    Barracuda -  dynamic / compress  梭子鱼-动态/压缩  
    是否溢出:dynamic行格式,列存储是否放到off-page页,主要取决于行大小,它会把行中最长的那一列放到off,直到数据页能存放下两行.
    溢出方式:数据页只包含指向溢出页面的20字节指针,TEXT/BLOB小于或等于40字节的列总是在线存储的。


(二).innodb 最大行限制:最大行大小限制为65535字节
(1).单个字段如果大于65535,则转换为TEXT 。


(2).单行最大限制为65535,这里不包括TEXT、BLOB。


参考:

https://dev.mysql.com/doc/refman/5.7/en/innodb-row-format-dynamic.html

https://dev.mysql.com/doc/refman/5.7/en/innodb-row-format-antelope.html

https://www.cnblogs.com/chenpingzhao/p/6719258.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值