Mysql(事务篇) 四大特性、隔离级别、MVCC(Undo log + ReadView) 1. 事务回顾 事务指的是逻辑上的一组操作,组成这组操作的各个单元要么全部成功,要么全部失败。 事务作用:保证一个事务中多次SQL操作要么全部成功,要么全部失败。 Mysql是一个服务器/客户端架构的软件,对应同一个服务器来说,可以有多个客户端与之连接,每个客户端与服务器连接上之后,就可以称之为一个会话(Session)。我们可以同时在不同的会话中输入各种语句,这些语句可以作为事务的一部分进行处理 数据运维 2024-05-07 向阳逐梦
数据库事务处理:确保数据完整性与一致性的机制 数据库事务处理是数据库管理系统(DBMS)中的关键概念,用于管理和维护数据的一致性、完整性和可靠性。事务是一个数据库操作的逻辑单位,可以包含一个或多个数据库操作(如插入、更新、删除等)。通过事务,可以确保在数据库操作中遵循ACID属性(原子性、一致性、隔离性和持久性),从而保证数据的正确性和安全性。 1.事务的基本概念: 1.1 原子性(Atomicity) 原子性指事务中的操作要么全部执行成功, 数据运维 2024-05-07 大猫
分布式事务并发控制的思考与实现|OceanBaseDev 本文根据 OceanBaseDev Meetup#1 上海站分享整理,本次活动针对分布式数据库的分布式事务以及落地实践展开具体分享。本文作者:萧石,蚂蚁集团高级技术专家,2014年加入蚂蚁集团 OceanBase 数据库团队,参与了 OceanBase 1.0 及 OceanBase 2.0 的设计开发工作,目前主要负责 OceanBase 分布式事务的设计开发及性能优化,分享视频以及 PPT 查 数据运维 2024-05-07 张二河
硬核来了!OceanBase事务引擎特性和应用实践分享 摘要:好消息!OceanBase现推出分布式数据库产品模块原理简介系列内容,通过完整13篇文章帮助数据库从业者建立更系统完善的数据库知识体系。第七期我们来聊聊分布式数据库中一个非常重要的技术门槛——事务。Tips:关注OceanBase公众号回复“产品原理”获取OceanBase产品模块原理简介系列已发布的6篇文章合集(该系列持续更新中)。 前言 分布式数据库有两个重要的技 数据运维 2024-05-07 LOVEHL^ˇ^
OceanBase 源码解读(五)事务的一生 在第二节讲通信协议 obmp_query 的时候,我跳过了事务控制的细节。这节讲一下事务的外部接口。 协议层对事务层提供的原始接口进行了封装,位于 sql/ob_sql_trans_control.h。这层封装为了 SQL 层调用方便,并且维护了 TransState 状态,语句执行结束时在统一的位置根据 TransState 调用正确的事务接口,保证在任何异常状态下事务资源不泄露。 而原始的事务 数据运维 2024-05-07 大猫
深入浅出事务的本质,附OceanBase事务解析14问! 作者:颜然,蚂蚁集团资深技术专家 OceanBase初创成员之一,OceanBase分布式数据库事务研发负责人,目前负责事务引擎、高可用架构、负载均衡、性能优化等方面的工作。 事务的前世 每个人的手机和电脑中几乎不会安装一款叫“数据库”的应用,但是几乎每一款 App 内部都会使用一个叫“数据库”的更底层的系统来存储数据。每个人日常生活中都会订票、购物、付款,但也许还没有意识到这些操作的背后都是由“ 数据运维 2024-05-07 醒在深海的猫
深入剖析数据库内核之事务的本质 | 附下一代分布式数据库 OceanBase 解决方案 颜然,OceanBase 分布式数据库事务研发负责人,OceanBase 初创成员之一,目前负责事务引擎、高可用架构、负载均衡、性能优化等方面的工作。 引言 众所周知,事务特性是数据库中重要的功能,是保证数据一致性的关键。在近日OceanBase 开源技术直播上,OceanBase 分布式数据库事务研发负责人颜然以数据库事务的本质为主题,深入分享了事务的前世今生一季 OceanBase 在分布式事 数据运维 2024-05-07 大白菜程序猿
OceanBase 源码解读(十):分布式事务 本文作者:泽寰 ,OceanBase 分布式事务工程师 本节为源码解读的第十篇,本文书接前文——在《 OceanBase 源码解读(五)事务的一生》中对事务的外部接口进行了介绍,本节讲一些事务模块内部细节。 概述 既然是分布式数据库,分布式事务的能力是必不可少的。关于事务的特性,总结如下: 1)两阶段提交(下文简称 2PC )协议,极致优化; 2)全局快照; 3)外部一致性; 4)巧妙解决:分布式 数据运维 2024-05-07 大白菜程序猿
实战教程第三章3.8:(高级)如何使用 OceanBase 复制表 复制表原理 复制表指的是一种特殊的表。 普通的表在生产环境,默认有三副本,其中一个主副本和两个备副本。备副本通过同步主副本的事务日志 clog 保持同步,同步协议是 Paxos 协议,主副本的事务日志只有在多数成员里确认落盘后,事务修改才会生效。 通常,默认情况下,读写都是在主副本上,备副本是不提供读写服务。应用如果开启会话或语句级别的弱一致性读后,备副本可能会提供只读服务。风 数据运维 2024-05-07 LOVEHL^ˇ^
OceanBase 源码解读(十二):事务日志的提交和回放 本文作者:刻晴,对同步协议、事务并发处理有着丰富理解的 OceaBase 开发工程师。 OceanBase 的 clog 日志类似于传统数据库的 REDO 日志,这个模块负责在事务提交时持久化事务数据,并实现了基于 Multi-Paxos 的分布式一致性协议。 日志模块的设计理念 与传统关系型数据库的日志模块相比,OceanBase 的日志服务主要有如下几点挑战: 通过Multi_Paxos替换传 数据运维 2024-05-07 向阳逐梦
内核实战教程第六期 | 数据库事务引擎介绍 众所周知,数据在写入时往往先被写入内存缓冲区,之后在某一时间才会真正持久化到磁盘中。对于简单的增、删、改、查操作,可以等待数据写到磁盘后再返回成功,这样就不会出现一致性问题。但在实际应用中,经常会出现一组操作需要作为整体执行的情况,多条语句要么都执行成功要么都执行失败,不允许出现数据不一致的情况。基于这样的需求,数据库提供了事务机制,用于将一系列数据库操作组合成一个完整的逻辑过程。 9月22日 1 数据运维 2024-05-07 大猫
《事务原子提交》专题导读 专题简介 数据库的事务必须满足 4 个特性:原子性、一致性、隔离性和持久性,即事务的 ACID,以保证事务操作数据的一致、正确和完整。其中,原子性决定了事务操作只有“成功”或“失败”两种结果。 事务通常是由多个操作构成的集合,在单机数据库中,事务将所有操作都写入日志,通过日志来判定操作全部成功或全部失败。而在分布式数据库中,事务操作可能涉及多个不同的物理节点,大大增加了实现事务原子性的复杂度。 O 数据运维 2024-05-07 泡泡
TIKV分布式事务简介 借着这次社区 PCTA/PCTP/PCSD 免费考证的活动,看了不少的教程与优秀的社区文章,选了其中的一个点展开总结一下,也希望可以写成文章让大家给看看我这块的理解是不是存在偏差。 分布式事务是事务的一种,指的是事务的参与者,支持事务的服务器,参与事务的资源服务器,事务的管理者等角色分别位于不同的节点上。 通常我们用ACID来定义事务(ACID概念定义)。简单说一下这些概念以及TiDB数据库是怎 数据运维 2024-05-07 三掌柜
TIKV分布式事务的异常处理逻辑 在之前发表的一篇文章中,介绍了TIKV分布式事务 ,这篇文章会接着上一篇文章,介绍一下分布式事务在节点出现异常时候的处理逻辑,与上一篇文档的目的一样,依然是希望分享出来让大家给看看我对这些逻辑的理解是不是存在偏差。 分布式事务的基本要素里,事务的原子性和一致性,在分布式集群中存在节点宕机的情况时,就无法保证,因此TIKV的分布式事务实现,使用了2PC。也就是之前介绍的prewrite和commit 数据运维 2024-05-07 向阳逐梦
PHP 对象关系映射与数据库抽象层中事务和并发控制 php 中的 orm 和 dal 提供事务控制和并发机制来管理数据库交互,包括:事务控制: pdo 或 orm 框架用于管理事务,确保操作要么全部成功,要么全部失败。并发控制: 乐观锁和悲观锁用于防止并发数据修改,包括版本号检查和排他锁。 PHP 对象关系映射与数据库抽象层中的事务与并发控制 简介 对象关系映射 (ORM) 和数据库抽象层 (DAL) 是 PHP 中用于与数据库交互的强大工具。它们 开发运维 2024-05-07 竹子爱熊猫
sql中rollback语句的主要作用 rollback 语句可以撤销当前事务中的所有更改,恢复到事务开始时的状态。具体操作包括:取消未提交的数据操作、恢复已修改记录的原始值、释放事务锁定的资源。在事务出现错误、用户希望撤销更改或数据库需要回滚时使用 rollback。需要注意,rollback 无法撤销 ddl 操作,只能影响当前事务,执行后未提交的更改将丢失。 SQL 中 ROLLBACK 语句的主要作用 ROLLBACK 是 SQ 数据运维 2024-05-02 LOVEHL^ˇ^
sql中begin end用法 在 sql 中,begin 和 end 用作事务的边界标记,以确保操作的原子性、持久性、隔离性。begin 开始事务,end 可提交或回滚事务。1. begin 开始事务。2. 执行操作(插入、更新等)。3. commit 提交事务,使更改永久化。4. rollback 回滚事务,撤消更改。 SQL 中 BEGIN 和 END 的用法 在 SQL 中,BEGIN 和 END 用作事务的边界标记。事 数据运维 2024-05-02 爱可生开源社区
怎么理解 Mybatis 的事务 对于数据库事务,我们都不陌生,数据库的事务(Transaction)是数据库管理系统执行过程中的一个逻辑单位,也是一个不可分割的工作单位。它包含一个或多个SQL语句,这些语句要么全部执行,要么全部不执行。事务是一个原子操作单元,其对数据的修改要么全都执行,要么全都不执行。那么我们就得来看看这个 Mybatis 是怎么处理事务的了。 ACID特性 原子性(Atomicity):事务是一个原子操作单元 数据运维 2024-04-29 醒在深海的猫
我们怎么理解Mybatis的事务 对于数据库事务,我们都不陌生,数据库的事务(Transaction)是数据库管理系统执行过程中的一个逻辑单位,也是一个不可分割的工作单位。它包含一个或多个SQL语句,这些语句要么全部执行,要么全部不执行。事务是一个原子操作单元,其对数据的修改要么全都执行,要么全都不执行。那么我们就得来看看这个 Mybatis 是怎么处理事务的了。 ACID特性 原子性(Atomicity):事务是一个原子操作单元 数据运维 2024-04-29 大猫
MySQL 核心模块揭秘 | 15 期 | 事务模块小结 ✍ 模块小结 1 月 3 日,新专栏发布事务模块的第一篇文章;4 月 17 日,发布了最后一篇文章。历时 3 个半月,用 14 篇文章对事务模块做了比较全面的介绍。 本文我们对事务模块已经发布的 14 篇文章做个简单回顾。 01 期《事务池和管理器的初始化》👆 事务池和管理器是事务模块的基石,把它们的初始化过程作为专栏的第一篇文章,再合适不过了。 02 期《BEGIN 语句会马上启动事务吗?》👆 数据运维 2024-04-28 LOVEHL^ˇ^