MYSQL 事务属性 和 隔离级别

来源:互联网 发布:新东方少儿编程培训 编辑:程序博客网 时间:2024/05/24 04:40

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;

4.MYSQL默认是什么隔离级别?

    Repeatable reat

5.如何查看/修改隔离级别?

    查看:select @@GLOBAL.tx_isolation, @@session.tx_isolation;
    修改:set session transaction isolation level repeatable read;  #repeatable read 可修改成 serializable等

0 0
原创粉丝点击