FAQ :
1.什么数据库引擎才有事务?
2.事务有哪些特征?
3.什么是隔离级别,隔离级别的基本单位是什么?
4.MYSQL默认是什么隔离级别?
1.什么数据库引擎才有事务?
场景 :一件事情(如银行转账),可能涉及多条(2条以上)的SQL操作。当且仅当 所有的 SQL 都挪成功,我们才说,此次事情(出账,入账)已完成。
事务的目的 :确保某一件事被成功执行,否则,撤销所有已执行的SQL(回滚)。
什么数据库引擎才有事务 :MYSQL为例,只有InnoDb数据库引擎的数据表才有事务处理功能。
2.事务有哪些(属性)?
四大属性(ACID)
原子性(Atomicity):不可分割(指事情不可分割);
一致性(consistency):开启事务后,只有两种情况:全部完成/全部撤销;
孤立性(Islatio):一个数据库可同时进行开启多个事务,并行不冲突;
持久性(Durability):事件提交后,即完成物理存储。(未提交,即不存在物理存储);
3.什么是隔离级别,隔离级别的基本单位是什么?
什么是隔离?隔离,是为了处理多个事务之间的执行优先级而制定的,隔离也可以说是数据库处理多个事务的模式。
隔离级别[按严格->宽松排序]:a)serializable,b)repeatable read,c)read commit,d)read uncommit;
Repeatable reat
5.如何查看/修改隔离级别?
查看:select @@GLOBAL.tx_isolation, @@session.tx_isolation;
修改:set session transaction isolation level repeatable read; #repeatable read 可修改成 serializable等