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, 0merges

merged operations:insert 0, delete mark 0, delete 0discarded operations:insert 0, delete mark 0, delete 0Hashtable size 34679, node heap has 0buffer(s)

Hashtable size 34679, node heap has 0buffer(s)

Hashtable size 34679, node heap has 0buffer(s)

Hashtable size 34679, node heap has 0buffer(s)

Hashtable size 34679, node heap has 0buffer(s)

Hashtable size 34679, node heap has 0buffer(s)

Hashtable size 34679, node heap has 0buffer(s)

Hashtable size 34679, node heap has 0buffer(s)0.00 hash searches/s, 0.00 non-hash searches/s---

LOG

---

Log sequence number 24635311

Log flushed up to 24635311Pages flushed upto 24635311Lastcheckpoint at 24635302

0 pending log flushes, 0pending chkp writes10 log i/o's done, 0.00 log i/o's/second

三、自适应hash索引:

1  如果表中的某些行会非常频繁的用到,由于innodb表是B+树组织起来的这一特性,最好的情况下innodb也是先读索引页,再读数据页,然后

找到数据;hash索引是用B+树索引的hash为键,以B+树索引的值(指向的页面)为值的;由于有了hash索引的引入,innodb可以通过计算索引的hash

值就直接定位到数据所在的页面;所以对于非范围查找的情况下hash索引这样的处理方式是有优势的。

2  要想innodb能用上bash索引还要有几个条件1、innodb_adaptive_hash_index=1 这样innodb就会启用hash索引了;然而这只是完成了一半,

innodb并不是为表中的所有行建立hash索引的,只是表中频繁访问的行才会为它建立hash索引,为冷数据建立hash索引是一种浪费;

innodb_adaptive_hash_index_parts 可以设置hash索引的分区,这种可以提升并发度。

四、redo log buffer:

redo log buffer 中的内容会被定期的刷新到磁盘,如果redo log buffer 设置的比较大它有利于mysql对大事务的处理,原因在于在大事务的处理中

可以把redo 写入到redo log buffer 而不是写入到磁盘,由于内存比磁盘快,所以大事务的处理速度上也会比较快;也就是说redo log buffer 比较大

的情况下在commit 之前可以减少一些没有必要的刷磁盘操作。

五、系统表空间:

1  innodb 系统表空间中包涵如下内容:innodb 数据字典,一些存储区域如 doublewrite\changebuffer\undolog ,如果innodb_file_per_table

没有打开那么那么用户建的表就会保存到这个系统表空间中,这种情况下系统表空间也就可以看面它包涵共享表空间了。

六、

----

mysql必须的组件_mysql innodb的重要组件相关推荐

  1. mysql myisam 详解_Mysql InnoDB和MyISAM区别原理解析

    mysql支持很多表类型的表(即存储引擎),如myisam.innodb.memory.archive.example等.每种存储引擎都有自己的优点和缺点,充分的理解每种存储引擎,有助于合理的使用它们 ...

  2. mysql 散列查询_MySQL InnoDB中hash查找表的实现

    MySQL版本:5.7.14 源码位置为hash0hash.h hash0hash.cc 作为一种时间复杂度最优为O(1)的数据结构,但是最坏时间复杂对位O(n)的一种数据结构,但是在良好的设计has ...

  3. mysql表空间权限_MySQL InnoDB表空间加密示例详解

    前言 从 MySQL5.7.11开始,MySQL对InnoDB支持存储在单独表空间中的表的数据加密 .此功能为物理表空间数据文件提供静态加密.该加密是在引擎内部数据页级别的加密手段,在数据页写入文件系 ...

  4. mysql锁表更新_Mysql InnoDB 数据更新导致锁表

    一.数据表结构 CREATE TABLE `jx_attach` ( `attach_id` int(11) NOT NULL AUTO_INCREMENT, `feed_id` int(11) DE ...

  5. mysql表空间不足_MySQL Innodb表空间不足的处理方法 风好大

    官方给出的解决方案: 添加和删除 InnoDB 数据和日志文件 这一节描述在InnoDB表空间耗尽空间之时,或者你想要改变日志文件大小之时,你可以做的一些事情. 最简单的,增加InnoDB表空间大小的 ...

  6. mysql 建表报错_mysql innodb 引擎 ,建表时报错:ERROR 1118 (42000)

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 mysql 5.7.20 当我在建表时,完整报错信息如下: ERROR 1118 (42000): Row size too large (> 81 ...

  7. mysql并发参数查看_MySQL Innodb 并发涉及参数

    可以通过innodb_thread_concurrency 来调节  并发线程数的限制值,使用innodb_thread_sleep_delay来调整当 并发 thread 到达 innodb_thr ...

  8. mysql死锁检测算法_MySQL InnoDB如何应付死锁

    死锁是事务处理型数据库系统的一个经典问题,但是它们并不是很危险的, 除非它们如此地频繁以至于你根本处理不了几个事务. 当因死锁而产生了回滚时,你通常可以在你的应用程序中重新发出一个事务即可. Inno ...

  9. mysql备份和优化_MySql Innodb存储引擎--备份和优化

    备份的目的 做灾难恢复:对损坏的数据进行恢复和还原 需求改变:因需求改变而需要把数据还原到改变以前 测试:测试新功能是否可用 备份需要考虑的问题 可以容忍丢失多长时间的数据: 恢复数据要在多长时间内完 ...

最新文章

  1. Tomcat组成与工作原理
  2. python pandas DataFrame 查找NaN所在的位置
  3. 总结Anaconda+Tensorflow遇到的坑
  4. 理解ArcIMS投影元素
  5. spring boot 单元测试_spring-boot-plus1.2.0-RELEASE发布-快速打包-极速部署-在线演示
  6. 前出塞数据挖掘的一些必须了解的概念
  7. android反射开启通知_作为Android开发者 你真的知道app从启动到主页显示的过程吗?...
  8. Android学习笔记(八)
  9. mybatis 二级缓存失效_给我五分钟,带你彻底掌握MyBatis的缓存工作原理
  10. 机器学习笔记----(1)什么是机器学习
  11. avast捆绑_如何摆脱Avast的通知,声音和捆绑软件
  12. mysql sniffer master_MySQL Sniffer
  13. 做国外Lead,你不懂这些概念就out了
  14. 软件测试面试题-那些让我印象深刻的bug
  15. 【路径规划】基于遗传算法求解多中心VRP问题matlab源码
  16. 【TcaplusDB君】 行业新闻汇编(5月25日)
  17. 物体6D位姿估计方法总结
  18. 哪里有Linux运维培训机构
  19. JAVA毕设项目物料追溯系统(java+VUE+Mybatis+Maven+Mysql)
  20. 通达信下单接口获取指数成份股的步骤分享

热门文章

  1. .NET Core微服务之基于IdentityServer建立授权与验证服务(续)
  2. .NET 文档数据库 RavenDB 4.0 发布
  3. Connect 2016过后,你的信仰势必需要更大的容器
  4. HoloLens开发手记-凝视 Gaze
  5. Django01: 安装/基础命令/设置笔记
  6. Python3.6学习笔记(三)
  7. 网页用数学公式编辑器 可以集成到FCKeditor
  8. 【经典回放】多种语言系列数据结构算法:希尔排序
  9. Android之实现Room升级需要给一个表增加一个字段
  10. Android之给gridview的单元格加上分割线