mysql的Innodb存储引擎学习

总是记不住事情,已经看过好几本mysql的书了,但是不经常用,很多基础性的东西又都忘了,从今天开始,将重新看mysql的书籍,并做相应的记录

InnoDB存储引擎

1.支持事务安装

Innodb 在功能方面最重要的一点就是对事务安全的支持,这无疑是让 Innodb 成为 MyS QL最为流行的存储引擎之一的一个非常重要原因。而且实现了 SQL92 标准所定义的所有四个 级别( READ UNCOMMITTED , READ COMMITTED , REPEATABLE READ 和 SERIALIZABLE )。对事务安全的支持,无疑让很多之前因为特殊业务要求而不得不放弃使用 MySQL 的用户转向支持MySQL ,以及之前对数据库选型持观望态度的用户,也大大增加了对 MySQL 好感。

2.数据多版本读取

Innodb 在事务支持的同时,为了保证数据的一致性已经并发时候的性能,通过对 undo
信息,实现了数据的多版本读取。

3.锁定机制的改进

Innodb 改变了 MyISAM 的锁机制,实现了行锁

4.实现了外键

Innodb 实现了外键引用这一数据库的重要特性

5.,表数据和索引数据是存放在一起,至于是每个表单独存放还是所有表存放在一起,完全由用户来决定(通过特定配置),同时还支持符号链接


Innodb 的物理结构分为两大部分:
1 、数据文件(表数据和索引数据)

 Innodb 的表空间分为两种形式。一种是共享表空间,另外一种是独享表空间。虽然我们可以自行设定使用共享表空间还是独享表空间来存放我们的表,但是共享表 空
间都是必须存在的,因为 Innodb 的 undo 信息和其他一些元数据信息都是存放在共享表空 间里面的。

当我们的文件表空间快要用完的时候,我们必须要为其增加数据文件,当然,只有共 享表 空 间 有 此 操 作 。

一个较为令人头疼的就是 Innodb 在给共享表空间增加数据文件之后,必须要重启数据库系统才能生效,如果是使用裸设备,还需要有两次重 启 。

2 、日志文件

Innodb 的日志文件和 Oracle 的 redo 日志比较类似,同样可以设置多个日志组(最少 2个),同样采用轮循策略来顺序的写入 。

由于 Innodb 是事务安全的存储引擎,所以系统 Crash 对他来说并不能造成非常严重的损失,由于有 redo 日志的存在,有 checkpoint 机制的保护, Innodb 完全可以通过 redo 日志将数据库 Crash 时刻已经完成但还没有来得及将数据写入磁盘的事务恢复,也能够将所 有部分完成并已经写入磁盘的未完成事务回滚并将数据还原。

在 MySQL 启动参数文件设置中, Innodb 的所有参数基本上都带有前缀 “ innodb_ ” ,不论是 innodb 数据和日志相关,还是其他一些性能,事务等等相关的参数都是一样。和所有Innodb 相关的系统变量一样,所有的 Innodb 相关的系统状态值也同样全部以 “ Innodb_ ”为前缀。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值