Innodb学习

发布时间 2023-06-04 22:52:30作者: 范达尔

mysql5.5.8之后 是innodb的存储引擎。之前默认是myisam。

innodb支持事务。

有表空间概念,分为

  • ON独立表空间
  • OFF系统表空间。
  • 如何选择:

Innodb 数据字典 内部的 保证事务安全性  没有使用mysql内部的数据类型 都是引擎相关的类型  B树   Undo回滚段

  服务器层产生frm文件存取数据定义 二进制的 这个用不到

 

事务:ACID

innodb 如何实现事务的?

Redo Log 和 Undo Log

  1. Redo Log 重做日志 事务持久性 重做日志缓冲区 innodb_log_buffer_size 文件。存已经提交的事务。顺序写入。
  2. Undo Log 回滚日志 。mvcc用的。未提交的事务。需要随机读写。

innodb支持行级锁。同mysal的表级锁更好。支持的并发更多。行级锁是存储引擎层实现的。

 

锁的作用:

  1. 行锁 表锁 间隙锁 多段锁 
  2. 管理资源的并发访问
  3. 用于实现事务隔离性

锁类型

  1. 共享锁
  2. 独占锁

锁粒度

阻塞和死锁

  1. 阻塞,等待其他锁释放,慢查询,排它锁,占连接数
  2. 死锁,多个事务,相互占用等待。

innodb状态检查

 show engine innodb status

 

innodb适用场景