事务(ACID)
概念
- 事务 是要保证一组数据库操作,要么全部执行成功,要么都不执行。
- mysql支持多引擎,但是并不是所有引擎都支持事务,
mysql中只有使用了Innodb数据库引擎才支持事务。 - 事务的特性(ACID) :Atomicity原子性,consistency一致性,isolation隔离性,durability持久性。
本文主要了解隔离性。
事务隔离的级别
当数据库上有多个事务同时执行的时候,就可能出现脏读,不可重复读,幻读的问题,为了解决这些问题,就有了事务隔离。
事务隔离的越严谨性能越差,所以实际运用中要在性能和数据之间寻找一个平衡点。
事务隔离的级别:
- 读未提交:一个事务还未提交的情况下,事务中的变更可以被其他事务看到。
- 读提交:一个事务提交后,事务中的变更才会被其他事务看到。
- 可重复读:事务执行过程中读到的数据始终和事务启动时的数据一致。
- 串行化:对于同一行数据,读数据会加读锁,写数据会加写锁,当出现读写锁冲突时,后启动的事务要等待先启动的事务执行后才可以继续执行。
本文重点介绍读提交和可重复读。
视图
在mysql中有两个视图的概念:
- v