美文网首页
Mysql存储引擎之InnoDB

Mysql存储引擎之InnoDB

作者: _陆春阳_ | 来源:发表于2018-08-17 09:39 被阅读0次

在mysql5.58版本之后,InnoDB替代了myisam成为了mysql数据库的默认引擎。

和myisam不同的是,InnoDB是一种事物的存储引擎,在存储方式上面有有不同,

InnoDB有表空间的概念,我们可以根据innodb_file_per_table 参数来确认,是否开启独立的表空间: show variables like 'innodb_file_per_table'

查看是否开启表空间

ON > 独立表空间 tablename.idb

OFF> 系统表空间 ibdaraX(x代表数字)

mysql5.5之前默认配置的是系统表空间,5.5之后默认的是独立表空间,那么,应该选择系统表空间还是独立表空间呢???

比较:

    1.系统表空间无法简单的收缩文件大小,如果表空间不足的时候,我们删除数据后,系统表空间并不会减少 ,独立表空间可以通过optimize table 命令来收缩系统文件。不需要重启。

    2.系统表空间是多表存在一起的,所有对IO会产生瓶颈,独立表空间可以同时向多个文件刷新数据。

强烈建议 使用独立表空间

那么如果想将现有的系统表空间的数据如果转移到独立表空间呢?

1.使用mysqldump 导出所有数据库的表数据。

2.停止mysql服务,修改参数,并删除innoDB相关文件。

3.重启mysql服务,重建InnoDB 系统表空间。

4.重新导入数据。

表空间就先介绍到这里,下面介绍下它的一些特性

1.InnoDB是一种事物存储引擎,完全支持事物的ACID特性,它是使用日志来保证事物的,也就是Redo log(重做日志) 和 Undo log(回滚日志)。

查看redo log 数据缓存区大小  show variables like 'innodb_log_buffer_size',我们会每个1秒将缓冲区上面的内容持久化到磁盘上面,所有缓冲区大小不用太大。

Redo log 主要储存已经提交的事物

Undo log 主要是储存未提交事物

2.支持行级锁,行级别锁可以最大程度支持并发,行级锁是由存储引擎层来实现的。

3.InnoDB状态检查

show engine innodb status

适用场景

适合多大数OLTP应用。

相关文章

  • 推荐书单

    MySQL 内核 INNODB存储引擎第1版 MySQL技术内幕 InnoDB存储引擎 第2版 RabbitM...

  • MySQL-存储引擎

    零、本文纲要 一、MySQL存储引擎 二、InnoDB存储引擎1、InnoDB逻辑存储结构2、InnoDB架构3、...

  • mysql(七)

    MySQL存储引擎-innodb 查看存储引擎 innodb和myisam的物理区别 innodb 核心特性 MV...

  • MySQL-InnoDB拾遗

    之前写过一篇介绍MySQL中存储引擎的文章MySQL之存储引擎,在实际工作中,还是以InnoDB存储引擎为主,此文...

  • MySQL-InnoDB体系架构

    作者:刘仁鹏参考资料:《MySQL技术内幕 InnoDB存储引擎》 1.InnoDB体系架构 InnoDB存储引擎...

  • MySQL存储引擎

    MySQL:单进程多线程数据库 一、InnoDB存储引擎InnoDB存储引擎支持事务(5.5.8MySQL默认版本...

  • 浅谈InnoDB存储引擎中的锁

    InnoDB存储引擎是MySQL数据库默认的事务型存储引擎,也是使用比较多的存储引擎。InnoDB存储引擎不紧支持...

  • mysql规范

    一、基础规范【强制】使用InnoDB存储引擎解读:InnoDB存储引擎是MySQL默认存储引擎,支持事务和行级锁,...

  • 1. Mysql技术内幕-简介及InnoDB体系架构

    Mysql体系结构和存储引擎 Mysql体系结构 InnoDB存储引擎 InnoDB通过使用MVCC来获取高并发性...

  • mysql存储引擎

    MySQL 存储引擎概述 MySQL 5.0 支持的存储引擎包括 MyISAM、 InnoDB、 BDB、 MEM...

网友评论

      本文标题:Mysql存储引擎之InnoDB

      本文链接:https://www.haomeiwen.com/subject/dltzbftx.html