本篇内容主要讲解“MySQL事务的概念以及事务隔离级别介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL事务的概念以及事务隔离级别介绍”吧!先简单介绍一下MySQL中事务的概念,它是指:用于实现某种行为的SQL语句的组合,可以是单条SQL语句,也可以是多条。就像线程一样,MySQL服务器允许多个事务并发执行去更新某些数据,为了保障安全,MySQL提供了四种隔离级别,用来限制不同事务之间的干扰。四种隔离级别如下(按照级别由低到高):read uncommitted(读未提交)read committed(读已提交)repeatableread(可重复读)Serializable(串行化)接下来按照这个顺序分别进行演示。**准备工作**由于我本地服务器上只有一个root用户,为了后续的演示操作,所以需要再新建一个用户testB,并授予相应权限。方便起见,下文中root、testB开启的事务称为A、B。一、read uncommitted(读未提交)分别登录到用户root和testB,以表t_ss作为实验表,通过查询可以看到表t_ss是空的。分别将root和testB的隔离级别设置为read uncommitted(读未提交)。接着分别在root、testB中开启事务A、B,然后在B中向表t_ss插入一条数据。这时候B中的事务还没有提交(commit),我们再在A中查表,可以看见,即使B的事务还未提交,A中也可以查询到事免费主机域名务B插入的数据。到这大家应该都能理解read uncommitted(读未提交)的含义了,通俗来说就是:即使事务B没有commit,其它事务也能读取到事务B更新的数据,即能够读取事务没有提交的数据。这是事务隔离级别中等级最低的一个。二、read committed(读已提免费主机域名交)将root和testB的事务隔离级别设置为read committed(读已提交)。同样开启两个事务,并在B中再插入一条数据,此时B事务未提交,当在A中查询时,发现并未查询到B新插入的数据。当commit事务B后,A成功读取到B插入的数据。总结一下,在read committed(读已提交)级别时,其它事务只能读取事务B提交后的数据,未提交则读取不到。这是大部分数据库的默认隔离级别。三、repeatable read(可重复读)将事务隔离级别设置为repeatable read(可重复读),并分别开启事务。A先查表,有两条数据,然后B插入一条数据并commit,A再查表,结果还是两条数据,但是B中查表所得结果是三条数据。(箭头指示命令执行顺序)也就是说,当数据库处于repeatableread(可重复读)时,同一个事务前后两次所读取的数据必须是一致的,无论事务B有没有插入数据。它是MySQL的默认隔离级别。四、Serializable(串行化)将root的隔离级别设置为Serializable(串行化),开启事务。当在事务A中查询表t_ss且未commit时,B事务一直在等待,到达指定时间后会报错,显示超时。在事务A提交后,事务B才能够成功插入数据。Serializable(串行化)是等级最高,要求最严的事务隔离级别,在这种情况下,其它事务必须等待当前事务commit后才能执行。到此,相信大家对“MySQL事务的概念以及事务隔离级别介绍”有了更深的了解,不妨来实际操作一番吧!这里是云技术网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
这篇文章给大家分享的是有关Oracle正则表达式怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。oracle正则表达式 ORACLE中的支持正则表达式的函数主要有下面四个: 1,REGEXP_LIKE :与LIKE的功能相似 2…