文档章节

MySQL InnoDB存储引擎

Huangchp
 Huangchp
发布于 2017/09/11 16:29
字数 474
阅读 18
收藏 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、刷新临接页:当数据库刷新数据脏页时,同时也会刷新该页所在区域的所有脏页。

© 著作权归作者所有

共有 人打赏支持
Huangchp
粉丝 2
博文 43
码字总数 9679
作品 0
吉林
MyISAM和InnoDB区别详解

MyISAM是MySQL的默认数据库引擎(5.5版之前),由早期的ISAM(Indexed Sequential Access Method:有索引的顺序访问方法)所改良。虽然性能极佳,但却有一个缺点:不支持事务处理(transacti...

xiaocao13140 ⋅ 04/20 ⋅ 0

MySQL基础(三)【MySQL事务与存储引擎】

3.1-数据库事务 什么是事务 一系列有序的数据库操作: 要么全部成功 要么全部回退到操作前的状态 中间状态对其他连接不可见 事务的基本操作: 基本操作 说明 start transaction 开始事务 co...

yanfeilai528 ⋅ 04/14 ⋅ 0

数据库索引(二)聚集/非聚集索引,索引和锁

聚集索引(InnoDB,使用B+Tree作为索引结构) 在一个结构中保存了b-tree索引和数据行;按照主键的顺序存储在叶子页上; 主键索引:叶节点存储(主键数据:所有剩余列数据) 二级索引(非聚簇...

sun_tantan ⋅ 04/30 ⋅ 0

如何设置innodb_log_file_size

在这片文章中,我会提供一些关于如何设置 MySQL的 参数的一些建议。 跟其他数据库管理系统一样,MySQL通过日志来实现数据的持久性(在使用InnoDB存储引擎的前提下)。这确保了当一个事务提交...

kai404 ⋅ 05/08 ⋅ 0

数据库中MyISAM与InnoDB区别

数据库中MyISAM与InnoDB区别 首页 » DIY技术区 » 数据库中MyISAM与InnoDB区别 09:57:40 MyISAM:这个是默认类型,它是基于传统的ISAM类型,ISAM是Indexed Sequential Access Method (有索引...

thinkyoung ⋅ 2015/09/08 ⋅ 0

通过查看mysql 配置参数、状态来优化你的mysql

通过查看mysql 配置参数、状态来优化你的mysql mysql的监控方法大致分为两类: 1.连接到mysql数据库内部,使用show status,show variables,flush status 来查看mysql的各种性能指标。 直接...

优惠券活动 ⋅ 05/03 ⋅ 0

InnoDB 存储引擎的主要知识点介绍

本文转载自:Draveness,略有修改 原文链接:『浅入浅出』MySQL 和 InnoDB · 面向信仰编程 作为一名开发人员,在日常的工作中会难以避免地接触到数据库,无论是基于文件的 sqlite 还是工程上...

踏雪无痕SS ⋅ 06/13 ⋅ 0

innodb 行格式(row_format)案例一则

背景知识: InnoDB存储引擎和大多数数据库一样,记录是以行的形式存储的,这意味着页中保存着表中一行行的数据。另外MYSQL对每个页存放的记录数又有硬性的规定,最少2行,最多16KB/2 - 200,...

橡皮高 ⋅ 05/31 ⋅ 0

MySQL常见的两种存储引擎:MyISAM与InnoDB的爱恨情仇

Java面试通关手册(Java学习指南,欢迎Star,会一直完善下去,欢迎建议和指导):https://github.com/Snailclimb/JavaGuide 一 MyISAM 1.1 MyISAM简介 MyISAM是MySQL的默认数据库引擎(5.5版...

snailclimb ⋅ 06/05 ⋅ 0

MySQL Server参数优化 - innodb_file_per_table(独立表空间)

MySQL Server参数优化 - innodbfileper_table(独立表空间) 1 简介 Innodb存储引擎可将所有数据存放于ibdata*的共享表空间,也可将每张表存放于独立的.ibd文件的独立表空间。 共享表空间以及...

xiaocao13140 ⋅ 06/08 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

【2018.0620学习笔记】【linux高级知识 13.4-13.6】

13.4 mysql用户管理 13.5 常用sql语句 13.6 mysql数据库备份恢复

lgsxp ⋅ 41分钟前 ⋅ 0

Java强弱引用示例

package jdk;import java.lang.ref.PhantomReference;import java.lang.ref.ReferenceQueue;import java.lang.ref.SoftReference;import java.lang.ref.WeakReference;public ......

月下狼 ⋅ 47分钟前 ⋅ 0

How I built a wind map with WebGL

Check out my WebGL-based wind power simulation demo! Let’s dive into how it works under the hood. I have an unflattering confession to make: for the last few years working at M......

voole ⋅ 50分钟前 ⋅ 0

Spring Cloud Finchley 正式发布,包含 4 个重大更新!

在 Spring 的官方博客上已经看到 Spring Cloud Finchley 在 06 月 19 日这一天正式发布了,我们在 Maven 中央仓库也看到了最新版的更新。 Finchley 正式版的发布貌似经历了相当长的时间,果然...

Java技术栈 ⋅ 50分钟前 ⋅ 0

QT5交叉编译

configure配置 ./configure -release -opensource -prefix <path> -no-largefile -no-pkg-config -no-qml-debug -xplatform <target> -qt-libpng -qt-zlib -qt-libjpeg -qt-freetype -qt-sq......

水海云 ⋅ 53分钟前 ⋅ 0

Linux环境下安装sshd服务

SSH 协议:安全外壳协议。为 Secure Shell 的缩写。SSH 为建立在应用层和传输层基础上的安全协议。 sshd服务使用SSH协议可以用来进行远程控制, 或在计算机之间传送文件 安装 yum -y install...

晨猫 ⋅ 57分钟前 ⋅ 0

ubuntu国内镜像站点及更新源

1: http://mirrors.163.com/ 2: https://www.oschina.net/p/ubuntu 3: Ubuntu 几个国内更新源 如何更改源 可以在软件更新中选择源 使用如下命令更改(修改前先备份): sudo vim /etc/apt/sour...

whoisliang ⋅ 58分钟前 ⋅ 0

java实现沙箱测试环境支付宝支付(demo)和整合微信支付和支付宝支付到SSM环境全过程(附源码)

文章有不当之处,欢迎指正,如果喜欢微信阅读,你也可以关注我的微信公众号:好好学java,获取优质学习资源。 一、支付宝测试环境代码测试 1.下载电脑网站的官方demo: 下载地址:https://d...

公众号_好好学java ⋅ 今天 ⋅ 1

如何 3D 打印一个密码锁

简评:这篇文章介绍怎么用 3D 打印机做一个密码锁,巧妙地利用机械结构的变化实现锁的功能,相当有趣! 3D 打印机非常适合打印静态物体。如果你够聪明,还可以打印出功能物件。如果你特别特别...

极光推送 ⋅ 今天 ⋅ 0

Day 17 vim简介与一般模式介绍

vim简介 vi和Vim的最大区别就是编辑一个文件时vi不会显示颜色,而Vim会显示颜色。显示颜色更便于用户编辑,凄然功能没有太大的区别 使用 yum install -y vim-enhanced 安装 vim的三种常用模式...

杉下 ⋅ 今天 ⋅ 1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部