MySQL技术内幕 InnoDB存储引擎内幕 学习笔记(二)InnoDB存储引擎

2.1InnoDB引擎概述

完整支持ACID事务,行锁设计,支持MVCC,支持外键,提供一致性非锁定读。

2.2InnoDB存储引擎的版本

InnoDB各版本功能对比
版本功能
老版本InnoDB(mysql5.1静态编译的InnoDB版本)支持ACID,行锁设计,MVCC
InnoDB 1.0.x (mysql5.1动态编译的InnoDB版本,官方称InnoDB Plugin)

继承了上述版本所有功能,增加了compress和dynamic页格式

注:由于不支持多回滚段,最大支持并发事务数量限制在1023

InnoDB 1.1.x (mysql5.5版本)继承了上述版本所有功能,增加了LinuxAIO,多回滚段
InnoDB 1.2.x  (mysql5.6版本)继承了上述版本所有功能,增加了全文索引支持,在线索引添加

2.3InnoDB体系架构

2.3.1后台线程

InnoDB引擎有多个线程负责处理不同的任务。

1Master Thread(核心):负责将缓冲池中的数据异步刷新到磁盘,保证数据的一致性,包括脏页的刷新,合并插入缓冲(INSERT BUFFER),UNDO页的回收等。

2IO Thread

InnoDB引擎使用AIO处理IO请求

InnoDB 1.0版本之前共有4个IO Thread,分别是write,read,insert buffer和log。在linux平台,io thread数量不能调整,windows平台下可以通过参数innodb_file_io_threads来增大IO Thread。从InnoDB 1.0.x开始,read thread和write thread分别增大到了4个,并且不再使用innodb_file_io_threads参数,而是分别使用innodb_read_io_threads和innodb_write_io_threads参数设置

可以通过命令show engine innodb status来观察InnoDB中的IO Thread:

3Purge Thread

事务提交后,其所使用的undolog可能不再需要,此时需要Purge Thread来回收已经使用并分配的undo页。在InnoDB 1.1版本之前,purge操作仅在InnoDB存储引擎的Master Thread中完成,从InnoDB 1.1版本开始,purge操作可以独立出单独的线程。

可在配置文件中添加如下命令来启用独立的Purge Thread

注:InnoDB1.1版本只能设置为1,InnoDB1.2支持多个Purge Thread

4Page Cleaner Thread

在InnoDB 1.2.x 版本引入,作用是将之前版本中脏页的刷新操作都放入到单独的线程中来完成。减轻原Master Thread的工作及对于用户查询线程的阻塞,进一步提高InnoDB存储引擎的性能。

2.3.2内存

1缓冲池

InnoDB存储引擎是基于磁盘存储的,其中的记录按照页的方式管理。由于cpu速度和磁盘速度之间的鸿沟,基于磁盘的数据库系统通常使用缓冲池技术来提高数据库的整体性能。

读取数据库的页:首先将从磁盘读到的页放在缓冲池中,下次再读取页时先从缓冲池读。

修改数据库中的页:首先修改在缓冲池中的页,然后再以一定的频率(checkpoint机制)刷新到磁盘上。

综上,缓冲池大小直接影响着数据库的整体性能。在32位操作系统最多将该值设置为3G。

2LRU List,Free List,Flush List

3重做日志缓冲

4额外的内存池

2.4Checkpoint技术

2.5Master Thread工作方式

2.6InnoDB关键特性

2.7启动,关闭与恢复

Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值