首页 > 代码库 > mysql innodb的重要组件
mysql innodb的重要组件
innodb包涵如下几个组件
一、innodb_buffer_pool:
1 它主要用来缓存数据与索引(准确的讲由于innodb中的表是由聚集索引组织的,所以数据只不是过主键这个索引的叶子结点)。
二、change buffer:
1 如果更新语句要更新二级索引的记录,但是记录所在的页面这个里面并没有在innodb_buffer_pool中,innodb会把这个对二级索引
面页的更新动作缓存到innodb_buffer_pool的一个特定区域(change buffer);等到之后如果有别的事务B要去读这个二级索引页的时候,
由于页面还没有,在innodb_buffer_pool中所以B事务会先把页面载入innodb_buffer_pool,这样子目标页面就算进入innodb_buffer_pool了,
接下来就可根据change buffer的内容来更新索引页面了。这样可以节约IO操作,提高性能。
2 当然别的刷新机(把change buffer中的变更落盘)制也是有的,比如说当mysql比较空闲的时候,slow shutdown 的过程当中也会刷新
change buffer中的内容到磁盘
3 监控change buffer
show engine innodb status; ------------------------------------- INSERT BUFFER AND ADAPTIVE HASH INDEX ------------------------------------- Ibuf: size 1, free list len 0, seg size 2, 0 merges merged operations: insert 0, delete mark 0, delete 0 discarded operations: insert 0, delete mark 0, delete 0 Hash table size 34679, node heap has 0 buffer(s) Hash table size 34679, node heap has 0 buffer(s) Hash table size 34679, node heap has 0 buffer(s) Hash table size 34679, node heap has 0 buffer(s) Hash table size 34679, node heap has 0 buffer(s) Hash table size 34679, node heap has 0 buffer(s) Hash table size 34679, node heap has 0 buffer(s) Hash table size 34679, node heap has 0 buffer(s) 0.00 hash searches/s, 0.00 non-hash searches/s --- LOG --- Log sequence number 24635311 Log flushed up to 24635311 Pages flushed up to 24635311 Last checkpoint at 24635302 0 pending log flushes, 0 pending chkp writes 10 log i/o‘s done, 0.00 log i/o‘s/second
----
mysql innodb的重要组件
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。