MySQL8.0.12 · 引擎特性 · LOB Partial Update优化

  1. 云栖社区>
  2. 阿里云数据库ApsaraDB>
  3. 博客>
  4. 正文

MySQL8.0.12 · 引擎特性 · LOB Partial Update优化

zhaiwx_yinfeng 2018-10-02 21:17:46 浏览1317
展开阅读全文

在之前,笔者介绍过InnoDB对于lob列的更新优化,即允许对lob类型的列数据进行部分更新。由于undo log page本身的限制(例如无法存储过长的数据),对于大列更新,旧版本被留在数据文件中,在MVCC读时,直接从中读旧版本即可。然而对于超长lob列数据,标记删除旧版本再插入完整新数据的开销太大了,尤其是对于json列,通常我们只需要修改其中极少部分的数据。 为了解决这个问题,InnoDB在8.0版本中实现了partial update的概念,将更新的范围缩小到page单位,并对lob Page辅助以索引,每个索引项可以维持一个lob page的多个版本(For MVCC)

WL#11328认为可以对部分更新操作做进一步的优化, 举个简单的例子,一个Page内可能只修改了几十个字节,却需要创建一个新的page,这依然会产生不

网友评论

登录后评论
0/500
评论
zhaiwx_yinfeng
+ 关注
所属云栖号: 阿里云数据库ApsaraDB