tidb既然是分布式数据库,所以它的事务应该可其它数据库事务有着不同的区别。我们来了解下tidb的数据库事务。

(一)事物

   1.几种数据库的默认隔离级别:
tidb是乐观锁
 

(二)事务语句

TiDB 支持分布式事务。涉及到事务的语句包括 autocommit 变量、[BEGIN|START TRANSACTION]COMMIT 以及 ROLLBACK。下面我们逐步了解这几个事务语句。

1.autocommit(自动提交)

  } 

通过设置 autocommit 的值为 1,可以将当前 Session 设置为自动提交状态,0 则表示当前 Session 为非自动提交状态。默认情况下,autocommit 的值为 1。在自动提交状态,每条语句运行后,会将其修改自动提交到数据库中。否则,会等到运行 COMMIT 语句或者是某些会造成隐式提交的情况,比如,执行 [BEGIN|START TRANCATION] 语句的时候会试图提交上一个事务,并开启一个新的事务。

2.START TRANSACTION, BEGIN(开始提交事务)

BEGIN;

START TRANSACTION;

START TRANSACTION WITH CONSISTENT SNAPSHOT; 

三条语句都是事务开始语句,效果相同。通过事务开始语句可以显式地开始一个新的事务,如果这个时候当前 Session 正在一个事务中间过程中,会将当前事务提交后,开启一个新的事务

3.COMMIT(提交)
提交当前事务,包括从 [BEGIN|START TRANSACTION] 到 COMMIT 之间的所有修改。

4.ROLLBACK(回滚)

回滚当前事务,撤销从 [BEGIN|START TRANSACTION] 到 ROLLBACK 之间的所有修改。

(三)显式事务和隐式事务

  • TiDB 可以显式地使用事务([BEGIN|START TRANSACTION]/COMMIT)或者隐式的使用事务(SET autocommit = 1)。
  • 如果在 autocommit = 1 的状态下,通过 [BEGIN|START TRANSACTION] 语句开启一个新的事务,那么在 COMMIT/ROLLBACK 之前,会禁用 autocommit,也就是变成显式事务。
  • 对于 DDL 语句,会自动提交并且不能回滚。如果运行 DDL 的时候,正在一个事务的中间过程中,会先将当前的事务提交,再执行 DDL。

(二)分布式数据库tidb-事务的更多相关文章

  1. 分布式数据库TiDB的部署

    转自:https://my.oschina.net/Kenyon/blog/908370 一.环境 CentOS Linux release 7.3.1611 (Core)172.26.11.91   ...

  2. (一)分布式数据库tidb-简介

    因为数据磁盘问题,最近进行了更换库,所以决定写关于这方面的专题的博客,博客信息参考的官方文档. 一.分布式数据库使用背景 随着互联网的飞速发展,业务量可能在短短的时间内爆发式地增长,对应的数据量可能快 ...

  3. SQL Server分布式数据库技术(LinkedServer,CT,SSB)

    SQL Server自定义业务功能的数据同步 在不同业务需求的驱动下,数据库的模块化拆分将会面临一些比较特殊的业务逻辑处理需求.例如,在数据库层面的数据同步需求.同步过程中,可能会有一些比较复杂的业务 ...

  4. 基于Sql Server 2008的分布式数据库的实践(二)

    原文 基于Sql Server 2008的分布式数据库的实践(二) 从Win7连接Win2003的Sql Server 2008 1.新建链接服务器链接到Win2003的Sql Server 2008 ...

  5. NewSQL分布式数据库,例如TIDB用K/V的底层逻辑

    内容参考 对分布式对定义参考这篇文章: 微服务都想用,先把分布式和微服务之间的关系说清楚 对分布式架构中心或无中心对比参考这篇文章: 分布式存储单主.多主和无中心架构的特征与趋势 对HDFS对内部机制 ...

  6. ****** 二十八 ******、软设笔记【数据库】-分布式数据库、特点、数据存储、DBMS组成

    分布式数据库    一.分布式数据库        分布式数据库由一组数据组成,这些数据物理上分布在计算机网络的不同结点(场地)上,逻辑上是属于同一个系统.每个结点可以执行局部应用,也能通过网络通信子 ...

  7. 数据库并发事务控制四:postgresql数据库的锁机制二:表锁 <转>

    在博文<数据库并发事务控制四:postgresql数据库的锁机制 > http://blog.csdn.net/beiigang/article/details/43302947 中后面提 ...

  8. 从零开发分布式数据库中间件 二、构建MyBatis的读写分离数据库中间件

    在上一节 从零开发分布式数据库中间件 一.读写分离的数据库中间件 中,我们讲了如何通过ThreadLocal来指定每次访问的数据源,并通过jdbc的连接方式来切换数据源,那么这一节我们使用我们常用的数 ...

  9. 从NoSQL到NewSQL,谈交易型分布式数据库建设要点

    在上一篇文章<从架构特点到功能缺陷,重新认识分析型分布式数据库>中,我们完成了对不同"分布式数据库"的横向分析,本文Ivan将讲述拆解的第二部分,会结合NoSQL与Ne ...

随机推荐

  1. 安装MySQL Server

    之前安装了MySQL Workbench 8.0 CE,现在来安装MySQL Server. 点击 add next next next     完成 MySQL安装包地址: 链接:https://p ...

  2. sys/cdefs.h No such file or directory

    安装如下软件: sudo apt-get libc6-dev-i386

  3. Linux远程连接ssh工具(FinalShell)xshell替代神器

    对对对 FinalShell SSH工具,服务器管理,远程桌面加速软件,支持Windows,macOS,Linux,版本2.9.8,更新时间2019.6.19 wntr 2017-01-17 11:0 ...

  4. readiness与liveness

    一.liveness(存活探针)方式 HTTP GET:对指定的端口和路径执行http get请求,返回非错误代码即代表正常 TCP socket:对指定端口建立TCP链接,链接通过则代表正常 Exe ...

  5. MAC——Homebrew介绍和使用

    一.Homebrew是什么 Homebrew是一款Mac OS平台下的软件包管理工具,拥有安装.卸载.更新.查看.搜索等很多实用的功能.简单的一条指令,就可以实现包管理,而不用你关心各种依赖和文件路径 ...

  6. Java reactor响应式编程

    转载自:https://www.cnblogs.com/lixinjie/p/a-reactive-streams-on-jvm-is-reactor.html 响应式编程 作为响应式编程方向上的第一 ...

  7. 用easyui实现查询条件的后端传递并自动刷新表格的两种方法

    用easyui实现查询条件的后端传递并自动刷新表格的两种方法 搜索框如下: 通过datagrid的load方法直接传递参数并自动刷新表格 通过ajax的post函数传递参数并通过loadData方法将 ...

  8. 洛谷--P1028 数的计算(递推)

    题意:链接:https://www.luogu.org/problem/P1028 先输入一个自然数n (n≤1000) , 然后对此自然数按照如下方法进行处理: 不作任何处理; 在它的左边加上一个自 ...

  9. CLRS10.2-7练习 - 翻转单向列表

    要求: Give a Θ(n)-time nonrecursive procedure that reverses a singly linked list of nelements. The pro ...

  10. php的json_encode第二个参数学习及应用

    php5.4以上: json_encode($data, JSON_FORCE_OBJECT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); p ...