chpater 2 : InnoDB存储引擎

线程

后台线程的主要作用是负责刷新内存池中的数据,保证缓冲池中的内存缓存的是最近的数据,此外将已修改的数据文件刷新到磁盘文件。默认情况下,InnoDB存储引擎的后台线程有7个:4个IO线程、1个主线程、一个锁线程、一个错误监控线程。IO线程的数量由配置文件里的innodb_file_io_threads参数控制,默认为4.

内存

  1. 缓冲池(buffer pool)
  2. 重做日志缓冲池(redo log buffer)
  3. 额外的内存池(additional memory pool)

InnoDB的工作方式总是将数据库文件按页(每页16K读取到缓冲池,然后按照最近最少使用(LRU)的算法来保留在缓冲池中的缓存数据。如果数据库文件需要修改,总是首先修改咋缓存吃中的野(发生修改后,该页为脏页),然后按照一定的频率将缓冲池的脏页刷新到文件。

关键特性

插入缓冲

聚集索引是指数据库表行中数据的物理顺序与键值的逻辑(索引)顺序相同。一个表只能有一个聚集索引,因为一个表的物理顺序只有一种情况,所以,对应的聚集索引只能有一个。如果某索引不是聚集索引,则表中的行物理顺序与索引顺序不匹配,与非聚集索引相同,聚集索引有着更快的检索速度。

两次写


自适应哈希索引
InnoDB存储引擎会监控对表上索引的查找,如果观察到建立哈希索引可以带来速度的提升,则建立哈希索引,所以称之为自适应(adaptvie)的。自适应哈希索引通过缓冲池的B+树构造而来。

chpater 2 : InnoDB存储引擎相关推荐

  1. Mysql技术内幕——InnoDB存储引擎

    一.mysql体系结构和存储引擎 1.1.数据库和实例的区别 数据库:物理操作系统或其他形式文件类型的集合.在mysql下数据库文件可以是frm,myd,myi,ibd结尾的文件. 数据库实例:由数据 ...

  2. InnoDB 存储引擎中的表锁和行锁详解

    各位对 "锁" 这个概念应该都不是很陌生吧,Java 语言中就提供了两种锁:内置的 synchronized 锁和 Lock 接口,使用锁的目的就是管理对共享资源的并发访问,保证数 ...

  3. linux mysql innodb_MySQL innoDB 存储引擎学习篇

    master thread的县城优先级别最高.其内部由几个循环(loop)组成:主循环(loop).后台循环(background loop).刷新循环(flush loop).暂停循环(suspen ...

  4. 《MySQL技术内幕:InnoDB存储引擎第2版》——3.1 参数文件

    3.1 参数文件 在第1章中已经介绍过了,当MySQL实例启动时,数据库会先去读一个配置参数文件,用来寻找数据库的各种文件所在位置以及指定某些初始化参数,这些参数通常定义了某种内存结构有多大等.在默认 ...

  5. mysql1033错误存储引擎_【Mysql问题集锦(1)】mysql不能使用innodb存储引擎

    案例: 一台服务器,操作系统centos,使用 yum 安装mysql ,之前innodb存储引擎一直是可以用的,某天之后,突然不能用了,使用innodb存储引擎的数据库导入后存储引擎全部变成了myi ...

  6. mysql 5.7 存储引擎_mysql5.7——innodb存储引擎总结

    一.innodb初探: 1.MySQL日志文件: ①:slow.log 文件会记录慢查询日志,当一条语句执行时间超过在配置参数long_query_time中指定的值时,这条语句就会被记录在这个文件中 ...

  7. mysql技术内幕innodb存储引擎——表索引算法和锁_(转)Mysql技术内幕InnoDB存储引擎-表索引算法和锁...

    表 原文:http://yingminxing.com/mysql%E6%8A%80%E6%9C%AF%E5%86%85%E5%B9%95innodb%E5%AD%98%E5%82%A8%E5%BC% ...

  8. InnoDB 存储引擎体系架构

    首先以一张图简单展示 InnoDB 的存储引擎的体系架构.从图中可见, InnoDB 存储引擎有多个内存块,这些内存块组成了一个大的内存池,主要负责如下工作: 维护所有进程/线程需要访问的多个内部数据 ...

  9. 11、InnoDB存储引擎

    InnoDB 是 MySQL 中第一个提供外键约束的存储引擎,而且它对事务的处理能力是其它存储引擎无法与之相比的. MySQL 5.5 版本以后,默认存储引擎由 MyISAM 修改为 InnoDB.I ...

  10. mysql+如何开发存储引擎_干货!MySQL 的 InnoDB 存储引擎是怎么设计的?

    MySQL 里还有什么其他成员呢? 对于 MySQL,要记住.或者要放在你随时可以找到的地方的两张图,一张是 MySQL 架构图,另一张则是 InnoDB 架构图: 遇到问题,或者学习到新知识点时,就 ...

最新文章

  1. cf两边黑屏怎么解决win10_Win10电脑开机黑屏只有鼠标指针无法进入桌面的解决方法...
  2. SourceTree的安装
  3. 2019-03-19-算法-进化(报数)
  4. 目录操作相关的系统函数
  5. 新浪微博被罚了,暂停更新微博热搜榜一周
  6. 推荐的Java项目_求点Java项目推荐?
  7. YOLO3实现对自身数据集的训练-YOLO3代码学习资料
  8. Linux系统调用接口添加简单示例
  9. C++后台开发技术栈
  10. 计算机软件工程课程设计感想,软件课程设计心得体会.docx
  11. 我的八年博士生涯——CMU王赟写在入职Facebook之前
  12. 区分苹果开发者的网址(开发者网址和管理您的appid网址)及证书信息
  13. 【转】为什么SPSS的日期要以1582年10月14日为基准
  14. 仿微博、微信、qq 点击缩略图, 查看高清图 UI 组件
  15. Linux查看历史命令 history
  16. PLSQL 常用语句
  17. 比迅雷还要快的视频下载利器You-Get
  18. Python-Windows定时关机与虚拟WIFI
  19. uniapp view或者text文本过长不能换行解决方案
  20. [转]比尔·盖茨在哈佛大学毕业典礼上的演讲

热门文章

  1. java web 学习计划
  2. 突然决定要记笔记,于是就来到了博客园,希望自己能够坚持下去
  3. 借助mapshaper的简化来修复geojson的拓扑错误
  4. CHIL-SQL-LEFT JOIN 关键字
  5. 【Ajax】后台验证用户输入的验证码是否与随机生成的验证码一直
  6. struts2 传递json对象时的延迟加载异常处理方法
  7. ABC + DEF = GHI //递归思想的充分体现(重难点)
  8. python类封装成dl_第7.9节 案例详解:Python类封装
  9. Sum nyoj 欧拉定理简单运用(数论入门)
  10. jlabel 不能连续两次set_关于JLabel的setText在监听器中不刷新有关问题(2)