MySQL InnoDB存储引擎
博客专区 > Huangchp 的博客 > 博客详情
MySQL InnoDB存储引擎
Huangchp 发表于1个月前
MySQL InnoDB存储引擎
  • 发表于 1个月前
  • 阅读 10
  • 收藏 0
  • 点赞 0
  • 评论 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、刷新临接页:当数据库刷新数据脏页时,同时也会刷新该页所在区域的所有脏页。

共有 人打赏支持
粉丝 2
博文 27
码字总数 4910
×
Huangchp
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: