加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

一个简朴的小案例带你领略MySQL中的事宜

发布时间:2019-11-15 02:01:18 所属栏目:编程 来源:Java的架构师技术栈
导读:【线上直播】11月21日晚8点贝壳技能总监侯圣文《数据安详之数据库安详黄金法例》 事宜又叫做TCL,全称是transaction control language,意思是事宜节制说话。这篇文章照旧属于我的mysql基本文章,在前面我们先容了下面这些基本常识: 数据库的增查改删操纵
【线上直播】11月21日晚8点贝壳技能总监侯圣文《数据安详之数据库安详黄金法例》

事宜又叫做TCL,全称是transaction control language,意思是事宜节制说话。这篇文章照旧属于我的mysql基本文章,在前面我们先容了下面这些基本常识:

  • 数据库的增查改删操纵
  • 数据表的增查改删操纵
  • 数据的增查改删操纵
  • 数据的束缚以及增查改删
  • Mysql中的内置函数

这篇文章照旧基本系列的文章,首要是先容mysql中的事宜,为了保持文章的完备性,就算你没有看过之前的教程也没题目。

一个简朴的小案例带你领略MySQL中的事宜

一、事宜的领略

张三有1000块钱,李四也有1000块钱,张三给李四500,还剩下500,李四此时就有1500。我们想象着会执行下面的mysql语句:

  1. update table user set money=500 where name = "张三";  
  2. update table user set money=1500 where name = "李四"; 

可是在计较机中也许会纷歧样。也许上面语句执行了下面的没有执行,因此为了担保两条语句要么都执行,要么都不执行,这时辰就用到了事宜。

事宜的意思是一条可能是一组语句构成一个单位,这个单位要么所有执行,要么全不执行。

事宜具有四个特征,也是口试常考的四个特征ACID:

  • A(原子性Atomicity):原子性指的是事宜是一个不行支解的,要么都执行要么都不执行。
  • C(同等性Consistency):事宜必需使得数据库从一个同等性状态,到其它一个同等性状态。
  • I(断绝性Isolation):指的是一个事宜的执行,不能被其他的事宜所滋扰。
  • D(耐久性Durability):耐久性指的是一个事宜一旦提交了之后,对数据库的改变就是永世的。

二、建设一个事宜

事宜着实可以分别为两大类:隐式的事宜和表现的事宜:

  • 隐式的事宜很简朴,好比我们的insert、delete、update、select这些语句都是隐式的事宜。
  • 表现的事宜指的是带有很明明的开始和竣事的标志,下面就来建设一个表现的事宜。

步调一:禁用步调提交成果

  1. set autocommit = 0; 

步调二:开启一个事宜

  1. start transaction; 

步调三:sql语句

  1. update table user set money=500 where name = "张三";  
  2. update table user set money=1500 where name = "李四"; 

步调四:竣事事宜

commit(提交)可能是rollback(回滚)。假如确定我们的语句没有题目,那么我们就可以commit,假如以为我们的语句有题目,那就rollback。

一个简朴的小案例带你领略mysql中的事宜

在这里新建了一个表,然后插入了两条数据。下面我们行使事宜,来更新一下:

一个简朴的小案例带你领略mysql中的事宜

在这里我们行使的是commit举办提交。虽然假如溘然发明我们之前的操纵有错误,那就可以行使rollback。

三、事宜的断绝级别

上面的事宜在单个环境下一样平常不会呈现什么题目,可是假犹如时运行多个,就会呈现题目了。我们知道并发操纵老是会呈现各类百般的题目,对付事宜来说就会呈现下面三个典范的题目:

(1)脏读

有俩事宜T1,T2。假如T1读了一条数据,这条数据是T2更新的可是还没提交,溘然T2认为不吻合举办事宜回滚了,也就是不提交了。此时T1读的数据就是无效的数据。

(2)不行一再读

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

(3)幻读

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

怎样去办理这些题目呢?既然多个事宜同时运行欠好,那就把他们隔分开来。这时辰就用到了事宜的断绝性。

一个简朴的小案例带你领略mysql中的事宜

mysql默认的事宜断绝级别为repeatable-read,Oracle默认的是read-committed,

想要去演示事宜的断绝级别也很简朴,只必要开启两个客户端演示就OK了,在这里就不说了。

【编辑保举】

  1. 从措施员的角度深入领略MySQL
  2. 37 个MySQL数据库小常识,为口试做筹备
  3. 数据库安详手段:安详威胁TOP5
  4. 一文学会怎样陈设MySQL复制拓鞭挞点器材:Orchestrator
  5. 留意!你不能不知道的遗留数据库情形的5个缺陷
【责任编辑:赵宁宁 TEL:(010)68476606】
点赞 0

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读