什么时候用事务
除了查询,只要修改(增删改)就加事务
事务的定义:数据库事务( transaction)是一个数据库操作序列,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。
innodb支持事务,myisam不支持事务
事务的四大特性:
ACID

原子性:操作最小单位,永远不会出现部分失败
一致性:最终目标,更像业务最终的合理性。指事务执行前后,数据处于一种合法的状态
隔离性:多个事务对一个表的操作是相互隔离的
持久性:只要事务提交成功,提交是永久的
举例参考:https://zhuanlan.zhihu.com/p/65281198
数据库事务什么时候出现
autocommit自动是开的,updtae等语句会自动提交事务
手动提交事务
begin;
updatae。。。。。。。。。。
commit
不执行commit数据不会刷新
结束事务两种方式:rollback回滚,commit提交
事务并发的三大问题:
脏读:一个事务读到了另一个事务修改但没有提交的数据

不可重复读:读到了其他事务已经提交了的删改(不包括增)的数据
幻读:读到了其他事务已经提交了的插入的数据
脏读--不可重复读 提交还是不提交
幻读--不可重复读 插入还是删改
三大问题:
问题其实都是读一致性问题
所以诞生了事务隔离机制
四种事务隔离级别:

串行化,未提交读基本不会用到
解决的问题:
事务隔离级别的解决方案