1、mysql5.5之前使用MyIsam引擎,后面使用InnoDb引擎
2、MyIsam不支持事务。不支持行级锁,仅支持表锁,表锁在并发的时候 太笨了,数据库崩溃后不能回复数据
3、InnoDb支持事务,4种隔离级别,提交读,未提交读,可重复读,可串行化,默认为可重复度。支持行级锁,数据崩溃后可以回复数据,
4、mysql引擎属于插件式架构
5、MySQL 的隔离级别基于锁和 MVCC 机制共同实现的。SERIALIZABLE 隔离级别,是通过锁来实现的。除了 SERIALIZABLE 隔离级别,其他的隔离级别都是基于 MVCC 实现。不过,SERIALIZABLE 之外的其他隔离级别可能也需要用到锁机制,就比如 REPEATABLE-READ 在当前读情况下需要使用加锁读来保证不会出现幻读。
6、事务是逻辑上的一组操作,要么都执行,要么都不执行。事务四种特性,ACID,原子性,隔离性 一致性,持久性。
7.并发事务会造成幻读,脏读,不可重复读,丢失修改
脏读是一个事务正在写插入数据操作,但是还未提交,另一个事务读数据的时候拿到了未提交的数据
幻读是事务A查询获取几条数据,另一个事务B进行添加数据,事务A再执行同一条查询语句却多了一些数据
不可重复读是指事务A内多次读同一数据。在事务A还没有结束时,事务B也访问该数据。那么,在事务A的两次读数据之间,由于事务B的修改导致事务A两次读取的数据可能不太一样。这就发生了在一个事务内两次读到的数据是不一样的情况,因此称为不可重复读。
丢失修改是指事务A对一个数据进行更改,事务B也对这个数据 进行修改,事务B覆盖了事务A,导致事务A的修改丢失了
- 不可重复读的重点是内容修改或者记录减少比如多次读取一条记录发现其中某些记录的值被修改;
- 幻读的重点在于记录新增比如多次执行同一条查询语句(DQL)时,发现查到的记录增加了。
版权声明:本文为m0_63500805原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。