innodb如何处理对innodb行记录的update
来源:互联网 发布:设计宣传单的软件 编辑:程序博客网 时间:2024/06/04 19:07
今天有同事提到一篇博客:http://blogs.innodb.com/wp/2010/09/mysql-5-5-innodb-change-buffering/
里面提到:
当更新非聚集索引上记录 和 聚集索引上的主键时,是标记删除,然后插入新的记录
当更新聚集索引上的非主键列时,是updated-in-place,也就是说原地修改,不会插入新记录。
之前一直以为都是以标记删除作处理的,翻了下代码。找到两个函数:
btr_cur_del_mark_set_sec_rec 对非聚集索引上的记录进行标记删除
btr_cur_del_mark_set_clust_rec 对聚集索引上的记录进行标记删除
证明的过程很简单,就是设置两个断点,然后更新不同的索引列来证明,过程不多说了,结果和那篇博客里提到的很吻合。
一直认为正确的观点其实是错误的,得出一个结论:任何真理都可以从代码里求证……
- innodb如何处理对innodb行记录的update
- innodb和myisam 对事务的处理
- InnoDB行记录格式
- InnoDB 存储引擎对 CHAR 类型的处理
- InnoDB行记录格式(compact)
- mysql innodb update 锁表
- mysql的innodb与myism对on duplicate key update的支持情况
- InnoDB的行锁
- innoDB
- InnoDB
- innodb
- MyISAM和InnoDB的一些记录
- MyISAM和InnoDB的一些记录
- mysql对InnoDB表的限制
- 对innodb MVCC实现的一点点思考
- DML对innodb索引的影响
- innodb_pool_buffer_size对innodb性能的影响
- MySQL-InnoDB Compact 行记录格式
- oracle查询时间
- FFMpeg框架代码阅读
- GB2312与UTF-8编码
- 跨出编写300个用例的第一步
- Ffmpeg快速应用开发
- innodb如何处理对innodb行记录的update
- HTML5 缓存: cache manifest
- flash的历史
- Java多线程之CountDownLatch
- 黑马程序员----对线程的一些解释 总结
- ffmpeg提取音频播放器总结
- android: activitity 的四种加载方式
- Activity的taskAffinity属性
- 删除数据库不可用连接