--事务(TRANSACTION)--
什么是事务:事务是一组具有原子性的SQL语句,是个独立的工作单元
概念:一个事务可以看作是一个工作内容的集合,这个集合里面的内容是整体的,不管里面有多少条SQL语句,要么全部执行成功,要么全部执行失败,对于事务来说,不可能只执行里面的一段,保持效数据库数据的完整性没有被破坏.
事务的四大特征:
1.原子性:事务是最小的单位,不可再分。
2.一致性:事务里执行DML(数据库操纵语言)的时候,需要保持一致性,要么同时成功,要么同时失败
3.隔离性:事务A与事务B之间具有隔离性
4.持久性:事务在你没有执行提交(COMMIT)操作的时候,结果集会一直缓存在硬盘里面里面(自我理解是这个样子)
开启事务: START TRANSACTION;
事务结束: END TRANSACTION;
提交事务: COMMIT TRANSACTION;
回滚事务: ROLLBACK TRANSACTION;
关于事务的两个重要SQL语句: COMMIT;(执行/提交事务) ROLLBACK;(回滚/返回执行事务之前的状态)
事务的四种隔离级别:
脏读:当一个事务正在访问数据,并对事物进行了修改,而这种修改还没有提交到数据库中,这时,另一个事务也访问这个数据,并使用的这个数据。
幻读:(重点在于新增和删除):是指在一个事务内,多次读取一个事务,两次读取到的数据总数不一致.
不可重复读(重点在于修改数据):是指在一个事务内,多次读取一个事务,两次读取到的数据内容不一致。
事务常用引擎:innerDB,MyISAM
mysql默认采用引擎:innerDB(功能执行速度比较综合)(支持事务)
MyISAM引擎(不支持事务):执行查询会特别快,但是执行增删改操作速度会慢