关于MySQL事务与隔离的四个级别的知识点在前面的文章中都介绍过了,相信大家也掌握了其中的内容,java零基础的朋友们也对事务和隔离级别有了一定的认识。前面都是比较理论型的知识,今天这篇文章介绍MySQL事务隔离级别操作的知识,适合学习完事务和隔离级别基础知识的朋友们来学习下面的内容。
第一个学习的MySQL事务隔离级别操作是,如何设置服务器缺省隔离级别?
第一种:修改 my.ini 配置文件
在my.ini 文件中的[mysqld]下面添加:
-------------------------my.ini-------------------------
------
[mysqld]
transaction-isolation = READ-COMMITTED
--------------------------my.ini------------------------
-------
隔离级别可选项为:
(1)READ-UNCOMMITTED
(2)READ-COMMITTED
(3)REPEATABLE-READ
(4)SERIALIZABLE
第二种:通过命令方式设置事务隔离级别
SET TRANSACTION ISOLATION LEVEL;
isolation-level可选值:READ UNCOMMITTED;READ COMMITTED;REPEATABLE READ;SERIALIZABLE
第二个MySQL事务隔离级别操作是,设置隔离级别作用的范围:
事务隔离级别的作用范围分为两种:会话级、全局级。会话级:只对当前会话有效;全局级:对所有会话有效。使用方法如下:
会话级:
SET TRANSACTION ISOLATION LEVEL;
或
SET SESSION TRANSACTION ISOLATION
LEVEL;
全局级:
SET GLOBAL TRANSACTION ISOLATION
LEVEL;
设置全局级隔离级别的具体的SQL语句:
SET GLOBAL TRANSACTION ISOLATION LEVEL READ
UNCOMMITTED;
SET GLOBAL TRANSACTION ISOLATION LEVEL READ READ
COMMITTED;
SET GLOBAL TRANSACTION ISOLATION LEVEL READ
REPEATABLE READ;
SET GLOBAL TRANSACTION ISOLATION LEVEL READ
SERIALIZABLE;
第三个MySQL事务隔离级别操作是:查看隔离级别
为了查看当前隔离级别,可访问 tx_isolation 变量,查看会话级的当前隔离级别@@tx_isolation
查看全局的当前隔离级别:SELECT @@GLOBAL.TX_ISOLATION;
最后要知道MySQL隔离级别与一致性问题的关系是怎样的。数据库的事务隔离级别其实是“可用性”和“数据一致性”的一场博弈——隔离级别的程度越高,数据一致性做的越好,但可用性在降低。下面通过表格的形式说明隔离级别与一致性问题的关系:
隔离级别 |
脏读 |
不可重复读 |
幻象读 |
读未提交 |
可能 |
可能 |
可能 |
读已提交 |
不可能 |
可能 |
可能 |
可重复读 |
不可能 |
不可能 |
可能 |
串行化 |
不可能 |
不可能 |
不可能 |
相信通过上面MySQL事务隔离级别操作的介绍,再加上充足的理论知识的基础,大家可以自己在计算机上进行MySQL事务和隔离级别设置的相关操作了。学好事务隔离级别,可以有效保证并发读取数据的正确性,这对于数据库来说,是十分重要的。希望大家可以在java培训课程中学习更多的操作技能,慢慢提高自己的java编程水平。
不写代码你养我啊08-23 11:30
HelloWorld09-29 17:28
兔子06-15 17:15