文档章节

MySQL InnoDB存储引擎

Huangchp
 Huangchp
发布于 2017/09/11 16:29
字数 474
阅读 20
收藏 0

InnoDB支持事务,其设计主要面小在线事务处理(OLTP online transaction processing),读取数据时不会产生锁,是MySQL 5.x 版本后的默认存储引擎,SELECT * FROM information_schema.plugins;查看MySQL版本的详细信息。

MySQL体系架构

通过后台线程将文件中的数据刷新到缓存中,或从缓存中将数据存储到文件中。

后台线程

Master Thread:负责将缓存中的数据异步刷新到磁盘中,保证数据的一致性。

IO Thread:为了提高性能,InnoDB使用了大量的AIO线程。参数为innodb_read_io_threads和innodb_write_io_threads,并且默认会启动4个。

Pugre Thread:事务提交后,该线程会回收已经使用并分配的undo页。undo记录的是事务的逆向操作,用于回滚及MVCC,参数为innodb_purge_threads相应的redo记录的是页的重做日志。

Page Cleaner Thread:该线程是InnoDb 1.2.x版本引入,作用是将之前版本中的脏页刷新操作都放到单独的线程中完成。

缓冲池:缓冲池其实就是一块内存区域,用过innodb_buffer_pool_size设置其大小。缓冲池中包含数据页,索引页,插入缓存,锁信息,自适应哈希索引,数据字典信息,重做日志缓存,额外内存池。缓存池可以有多个,通过哈希值存到不同的缓存区域。通过innodb_buffer_pool_instances设置缓存池数量。

InnoDB特性

1、插入缓存:Insert Buffer,Delete Buffer,Purge Buffer,分别对应INSERT,DELETE,UPDATE操作。

2、两次写:保证数据的可靠性,通过两次写恢复数据更准确。

3、自适应哈希索引:提高查询效率。

4、异步IO:提高磁盘的操作性能。

5、刷新临接页:当数据库刷新数据脏页时,同时也会刷新该页所在区域的所有脏页。

© 著作权归作者所有

共有 人打赏支持
Huangchp
粉丝 2
博文 43
码字总数 9988
作品 0
吉林
mysql myisam innodb 区别

最近连续接到了两次tencent的电话面试,当然不是同一个部门。都涉及到了一个mysql的基础知识问题。为了防止第三次打电话来,备注下。^^。 题目1:讲讲你对mysql myisam,innodb的认识。然后你...

马丁博客
2010/10/08
0
0
MYSQL之一步到位之InnoDB

快速认识InnoDB InnoDB是MySQL下使用最广泛的引擎,它是基于MySQL的高可扩展性和高性能存储引擎,从5.5版本开始,它已经成为了默认引擎。 InnODB引擎支持众多特性: a) 支持ACID,简单地说就...

SANSOM
2013/04/23
0
1
MySQL存储引擎InnoDB与Myisam的六大区别

MySQL有多种存储引擎,每种存储引擎有各自的优缺点,可以择优选择使用: MyISAM、InnoDB、MERGE、MEMORY(HEAP)、BDB(BerkeleyDB)、EXAMPLE、FEDERATED、ARCHIVE、CSV、BLACKHOLE。 MySQL支持...

Junn
2013/12/11
0
2
MySQL查看和修改表的存储引擎

1 查看系统支持的存储引擎 show engines; 2 查看表使用的存储引擎 两种方法: a、show table status from dbname where name='tablename'; b、show create table table_name; 如果显示的格式...

Amamatthew
2014/09/29
0
0
MySQL性能优化系列-01原理与概念

MySQL概述 MySQL数据库目前已被Oracle收购,并发展处多个版本。目前使用最广泛且免费的MySQL版本是MySQL Community(社区版),另外还有三个付费的MySQL版本MySQL Standard(MySQL标准版)、...

东皇巴顿
2017/04/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

负载均衡的解决方案有哪些

负载均衡器服务可满足大型组织的需求,支持所有数据中心和跨数据中心高可靠性场景。 本地负载均衡,通过附带或者未附带持久性覆盖选项,Incapsula支持各种负载均衡算法,以优化服务器之间的流...

上树的熊
9分钟前
0
0
Java实现在线打开word文档加盖印章/盖章/签名功能

前言: 我们知道,大型一点的OA办公系统都会有很多在线处理office办公文档的需求。其中有一点也基本绕不开,那就是为文档盖章或添加手写签名来保护文档,让被盖章的文档不再被编辑。 在Java中...

山里的红杏
17分钟前
3
0
js控制输入正负数,小数点后保留两位

//限制数字function clearNoNum(obj){ //修复第一个字符是小数点 的情况. if(obj.value !=''&& obj.value.substr(0,1) == '.'){ obj.value=""; } obj.value ...

一直在成长的程序猿
19分钟前
1
0
动态代理

具体场景 为了使代理类与被代理类对第三方有相同的函数,代理类与被代理类一般实现一个公共的interface,定义如下 public interface Subject { void rent(); void hello(String s)...

wuyiyi
23分钟前
0
0
时间字段

我们看看这几个数据库中(mysql、oracle和sqlserver)如何表示时间 mysql数据库:它们分别是 date、datetime、time、timestamp和year。date :“yyyy-mm-dd”格式表示的日期值 time :“hh:...

DemonsI
25分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部