MYSQL 总结(四)

来源:互联网 发布:电影级别剪辑软件 编辑:程序博客网 时间:2024/06/14 04:57

Mysql事务的概念

Mysql事务即是一个独立的工作单元

一,首先先介绍ACID ACID即是原子性、一致性、隔离性、持久性

原子性:即表示一个事务的操作要么成功提交,要么失败回滚。

一致性:即表示一个事物只能从一个状态到另一个状态,即commit才到另一个状态。

隔离性:即表示一个事物在完成修改前,对其他事务是不可见的。

持久性:即表示一个事物提交,那它就是永久的保存在数据库中。

二,隔离级别

这里有事务A和事务B来举例

1,READ UNCOMMIT(未提交读)这个级别一般没人用

      表示一个事务没有提交,其他的事物也可以看到。例:A做了修改,还没提交,B可以看到。

2,READ COMMIT (提交读)一般数据库用,Mysql 不用

      表示一个事务只能看见已经提交的事务。例A做了修改,没提交B看不到,提交了之后才看的到。但会出现不可重复读;不可重复读意味着同一个事务内会看到不同的数据。

3,REPEATABLE READ(可重复读)Mysql默认

    保证了一个事务内多个实例修改数据时,显示都一致。但会出现幻读;即一个事务在修改数据的时候。别的改了数据,这个事务内的数据会有变化。

4,SERIALIZABLE (可串行化)最高的隔离级别

   保证了一个事务看到的数据始终一致,A在修改,没做提交,B不能做修改。

三,死锁

即两个事物在抢占一个资源互相锁定的情况,Innodb存储引擎将持有最小行级的排他锁进行回滚。

原创粉丝点击