您的位置:首页 > 其它

Innodb存储引擎的特性

2017-10-19 11:53 288 查看
=====================innodb系统表空间========================================
1、Innodb使用表空间进行数据存储,根据配置参数innod_file_per_table
的值,如果是ON,则存储在独立表空间--tablename.idb,如果是OFF,则存储
在系统表空间--ibdataX(默认是打开的)--> show variables like 'innodb_file_per_table;'

2、系统表空间和独立表空间要如何选择:
系统表空间无法简单的收缩文件大小
独立表空间可以通过optimize table命令收缩文件系统
系统表空间会产生IO瓶颈
独立表空间可以通过向多个文件刷新数据

3、如果把原来存在系统表空间中的表转移到独立表空间:
使用mysqldump导出所有数据库数据
停止mysql服务,修改参数,并删除innodn相关文件
重启mysql服务,重建innodb系统表空间
重新导入数据
=====================innodb系统表空间========================================

=====================innodb特性========================================
1、Innodb是一种事务性存储引擎
2、完全支持事务的ACID特性
3、实现事务特性的原理:
使用Redo Log和Undo Log,Undo Log用于帮助未提交事务进行回滚,Redo Log记录
已经提交的事务,Undo Log会随机读写,而Redo Log基本是顺序
4、Innodb支持的是行级锁,在进行写操作时需要的资源更少,支持的并发更多
5、行级锁是由存储引擎层实现的
6、锁:
锁的主要租用是管理共享资源的并发访问
锁用于实现事务的隔离性
共享锁(读锁)
独占锁(写锁)
锁的粒度:根据粒度分为表级锁,行级锁,粒度越大,并发就越小
7、阻塞和死锁:
阻塞:一个事务中的锁需要等待另一个事务中的锁释放,形成的是阻塞
死锁:两个或两个以上的事务在执行中相互占用了对方的资源
8、Innodb状态检查:
show engine innodb status;

=====================innodb特性========================================
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: