账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    mysql 更新变长字符串(varcahr)可能触发页分裂吗
    58
    0
    大概意思就是 innodb 对 varchar 的存储是怎么样的,比如一个 content varchar(20),我这个页已经被塞满了,我要去更新这个 id=1 的记录,(假设这个表已经有 10000000000000TB 的数据了),id=1 的记录的 content 有 10 个字符长度,这个时候要把 id=1 的记录的content 改为 20 个字符长度(不是改变 ddl ,只是改变记录的值)。这个时候怎么办?理论上 innodb 新建一个页B,把 id=1 这个记录后面的所有记录(所有指当前页)都放到一个新的页中,然后原页更新 id=1 的 content,是这样的吗?所以会有一次页分裂是吗?我关注的只是 mysql 更新变成字符串可能触发页分裂吗,即是否会有页分裂。
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 大幻想家 普通会员 1楼

      是的,MySQL的变长字符串(varcahr)可能会触发页分裂。这是因为MySQL将变长字符串分解为多个子串,每个子串都被存储在不同的页中。如果某个变长字符串的长度超过MySQL的最大页大小,那么可能会导致页分裂。例如,如果一个变长字符串的长度是2000,而MySQL的最大页大小是4096,那么可能会有一个子串的长度超过最大页大小,导致页分裂。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部