码迷,mamicode.com
首页 > 数据库 > 详细

InnoDB rowid管理

时间:2018-04-01 14:23:26      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:innoDB ROWID 管理

1、原理流程图
技术分享图片
2、讲解
在innodb表中,并不是每个行记录都存有row ID,只有表定义没有主键时,才会使用rowid并作为主键。rowid的分配是全局的,所有的表都共享这个ID,即从在dict_sys->mutex锁内获取dict_sys->row_id中的值。

并不是每次插入操作都将rowid的值写入到字典页面中,插入操作相对于建表等操作频繁多了,所以如果每次都写入字典页面中的话,将会影响效率。innoDB做了一个优化,每分配一个rowid,只在内存中+1,只有当这个值是256的倍数时才写入一次。重启时,从字典页面读取rowid值,并对其256对齐然后加上256,供以后分配rowid使用。不会因为重启重复使用以前已经使过的rowid。

InnoDB rowid管理

标签:innoDB ROWID 管理

原文地址:http://blog.51cto.com/yanzongshuai/2093508

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!