Mysql的InnoDB介绍

目录

show engines查看搜索殷勤,默认InnoDB。

Mysql为什么使用InnoDB作为默认存储引擎

InnoDB主要包括内存结构和磁盘结构

内存结构包含:

磁盘结构中包括:

为什么设计成内存结构和磁盘结构两部分

使用InnoDB存储引擎创建的表,对应的数据文件在哪里

MYSQL存储结构(MYSQL未来有效维护数据而定义的一系列数据结构)

什么是表空间文件

用户数据在表空间文件中怎么存储的


InnoDB兼顾高可靠性和高性能的通用引擎,8.0中默认存储引擎就是InnoDB,

支持B+树索引,支持备份与恢复,支持聚簇索引,支持数据压缩,支持数据缓存,支持地理空间数据类型,经纬度,支持数据加密,支持地理空间索引。

锁粒度-行级锁,修改一行的时候,别的不能修改,多版本并发控制。支持事务。

优势:

DML支持ACID模型(事务)可以回滚,崩溃恢复。支持行级锁,提高了多用户的读取并发性和性能。

Innode存储引擎维护了自己的缓冲池(以SQL为KEY,对应的数据为Value),大幅度提高了效率

Innode优化了基于主键的查询,每个InnoDB都有一个称为聚簇索引的主键索引,实现最少的IO,完成主键的查找

为了保证一致性,支持Foreign key外键约束

如何利用InnoDB特性实现最佳的性能

为表中查询最多的列指定为主键

show engines查看搜索殷勤,默认InnoDB。

如果InnoDB不是默认的存储引擎,可以通过命令后指定选项--default -storage-engine=InnoDB或者在选项文件中[mysql]节点定义default=storage-engine=InnoDB并且重启服务器来设置InnoDB的存储引擎

在MYSQL8.0中表的结构信息保存在.ibd文件中,可以使用ibd2sdi工具提取表中定义的具体信息使用方法

把ibd文件转换成txt文件

ibd2sdi --dump-file=文件名字.txt t_innodb.ibd

生成的t_innodb.tst文件中有对应表的具体描述

cd /var/lib/mysql/

Mysql为什么使用InnoDB作为默认存储引擎

原先用的是MyIsAM

换句话InnoDB(>5.5)和MyIsAM(<5.5)的区别

Innodb实现了聚簇索引,数据缓存,外键索引,哈希索引(以自适应哈希索引的方式)。由于InnoDB存储引擎存储数据量大,性能高,可以有效的保证数据安全等优点。

InnoDB主要包括内存结构和磁盘结构

内存结构包含:

缓冲池:内存主要工作区域,优化查询的性能

变更缓冲区:优化修改操作的性能

日志缓冲区:

自适应哈希:进一步提升查询的性能

磁盘结构中包括:

系统表空间

独立表空间

通用表空间

临时表空间

撤销表空间 :以上保存的是真实的数据

重做日志     下面保证数据的安全

双鞋缓冲区

为什么设计成内存结构和磁盘结构两部分

从Innodb数据设计想,性能和安全重要:真是的数据要保存到磁盘(容量大,价格便宜,IO速度慢,严重影响数据库整体性能)里面,把常用的放到内存(容量小,价格贵,断电就丢失,速度快)里面,换句话说磁盘结构的文件是用来保存数据实现数据持久化的,内存结构是用来缓存数据提升效率的。

使用InnoDB存储引擎创建的表,对应的数据文件在哪里

数据目录- /var/lib/mysql

当创建一个数据库时候,会在数据目录生成一个与数据库同名的子目录->表对应的数据文件以表名ibd为文件后缀的文件,ibd2sdi工具提取表中定义的具体信息,

在MYSQL5.7以后版本默认每个表生成独立表空间,每个表都对应一个表数据文件,可以通过innodb_file_per_table[=ON|OFF]进行控制,如果关闭这个选项,则所有表的数据都砸系统表空间存储

MYSQL存储结构(MYSQL未来有效维护数据而定义的一系列数据结构)

什么是表空间文件

表空间文件是用来存储表中数据的文件,表空间文件的大小由存储的数据多少决定,不同的表空间文件存储数据的种类也有所不同,在MYSQL中表分为五类:系统表空间,独立表空间,通用表空间,临时表空间,撤销表空间

表空间和表空间文件的关系是什么

表空间可以理解为MYSQL为了管理数据而设计的一种数据结构,主要是描述的对结构的定义,表空间文件是对定义的具体实现,以文件的形式存于磁盘上

用户数据在表空间文件中怎么存储的

用户的数据以数据行的方式存储在对应的表空间文件中,那么表空间中很多个数据行就需要进行处理,以便后续进行高效的查询

表空间由段,区组,区,页,数据行组成,其中页是InnoDB磁盘管理

相关推荐

  1. MYSLQ——InonoDB事务

    2024-06-11 10:30:06       33 阅读
  2. Mysql】myisam和innodb区别?

    2024-06-11 10:30:06       35 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-11 10:30:06       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-11 10:30:06       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-11 10:30:06       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-11 10:30:06       20 阅读

热门阅读

  1. 微信小程序真机调试连不上

    2024-06-11 10:30:06       7 阅读
  2. MATLAB 论文绘图规范标注

    2024-06-11 10:30:06       11 阅读
  3. 模块间通信

    2024-06-11 10:30:06       7 阅读
  4. 后端|压缩Base64图片的两种方式

    2024-06-11 10:30:06       10 阅读
  5. 仿写Vue的{{}}语法

    2024-06-11 10:30:06       10 阅读
  6. 初阶c++入门

    2024-06-11 10:30:06       10 阅读