mysql中的业务,你了解嘛?

业务又叫做TCL,全称是transaction control language,意思是业务操控言语。这篇文章仍是归于我的mysql根底文章,在前面咱们介绍了下面这些根底知识:

1、数据库的增查改mysql中的业务,你了解嘛?删操作

2、数据表的增查改删操作

3、数据的增查改删操作

3、数据的束缚以及增查改删

5、Mysql中的内置函数

这篇文章仍是根底系列的文章,主要是介绍mysql中的业务,为了坚持文章的完整性,就算你没有看过之前的教程也没问题。

一、业务的了解

张三有1000块钱mysql中的业务,你了解嘛?,李四也有1000块标签20钱,张三给李四500,还剩余500,李四此刻就有1500。咱们幻想着会履行下面的mysql句子:

update table umysql中的业务,你了解嘛?ser set money=500 where name = "张三";

update table user set money=1500 where name = "李四";

可是在计算机中或许会不一样。或许上面句子履行了下面的没有标签20履行,因而为了确保两条句子要么都履行,要么都不履行,这时候就用到了业务。

业务的意思是一条或者是一组句子组成一个单元,这个单元要么悉数履行,要么全不履行。

业务具有四个特性,也是面试常考的四个特性ACID:

A(原子性Atomicity):原子性指的是业务是一个不可分割的,要么都履行要么都不履行。

C(一致性Consistenc标签3y):业务有必要使得数据库从一个一致性状况,到别的一个一致性状况。

I(阻隔性Isolation):指的是一个业务的履行,不能被其他的业务所搅扰。

D(持久性Durability):持久性指的是一个业务一旦提交了之后,对数据库的改动便是永久的。

二、创立一个业务

业务其实能够划分为两大类:隐式的业务和显现的业务

隐式的业务很简单,比方咱们的insert、delete、update、select这些句子都是隐式的业务。

显现的业务指的是带有很明显的开端和完毕的符号,下面就来创立一个显现的业务mysql中的业务,你了解嘛?。

过程一:禁用过程提交功用

set autocommit = 0;

过程二:敞开一个业务

start tran标签1saction;

过程三:sql句子mysql中的业务,你了解嘛?

update table user set money=500 where name = "张三";

update table user set money=1500 where name = "李四";

过程四:完毕业务

commit(提交)或者是rollback(回滚)。假如确认咱们的句子没有问题,那么咱们就能够commit,标签19假如以为咱们的句子有问题,那就rollback。

在这里新建了一个表,然后插入了两标签1条数据。下面咱们运用业务,来更新一下:

​在这里咱们运用的是commit进行提交。当然假如忽然发现咱们之前的操作有过错,那就可标签1以运用rollback。

三、业务标签1的阻隔等级

上面的业务在单个情况下一般不会呈现什么问题,可是假如一起运转多个,就会呈现问题了。咱们知道并发操作总是会呈现各式各样的问题,关于业务来说就会呈现下面三个典型的问题:

(1)脏读

有mysql中的业务,你了解嘛?俩业务T1,T2。假如T1读了一条数据,这条数据是T2更新的可是还没提交,忽然T2觉得不合适进行业务回滚了,也便是不提交了。此刻T1读标签19的数据便是无效的数据。

(2)不可重复读

有俩业务T1,T2。假如T1读了一条数据,之后T2更新了这条数据,T1再次读取就发现值变了。

(3)幻读

有俩业务T1,T2。假如T1读了一条数据,之后T2插入了一些新的数据,T1再次读取就会多呈现一些数据。

怎么去处理这些问题呢?已然多个业务一起运转欠好,那就把他们阻隔开来。这时候就用到了业务的阻隔性。

mysql默许的业务阻隔等级为repeatable-read,Oracmysql中的业务,你了解嘛?le默许的是read-committed,

想要去演示业务的阻隔等级也很简单,只需要敞开两个客户端演示就OK了,在这里就不说了。

Write a Comment

电子邮件地址不会被公开。 必填项已用 *标注