TRX
  • 2025-01-09Mysql事务的奥秘:探索InnoDB事务原理与MVCC机制
    本文章示例是以mysql8.0版本事务是一组操作的集合,它是不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或者撤销操作请求。即这些操作要么同时成功,要么同时失败。事务四大特性特性描述原子性事务是不可分割的最小单元,要么全部成功,要么全部失败一
  • 2025-01-09MySQL死锁的产生、排查与解决
    目录查看当前事务、死锁信息模拟DDL插入模拟数据模拟死锁(需开启不同事务)会话1(窗口1):Alice给Bob转账会话2(窗口2):Bob给Alice转账会话1(窗口1):尝试更新Bob的账户会话2(窗口2):尝试更新Alice的账户PS:关闭事务,结束死锁分析information_schema中的锁信息SHOWENGINEINNODBSTAT
  • 2025-01-09MySQL表锁定问题详解:原因、检测与解决方案
    个人名片
  • 2024-12-31一文了解MVCC——解锁数据库并发控制的“魔法钥匙”
    MVCC概念MVCC全称叫做MultiversionConcurrencyControl,多版本并发控制。MVCC的出现主要是为了提升数据库并发性能,用较好的方式处理事务并发的读写冲突,避免了加锁操作,降低性能开销,在有读写冲突时,能够做到非阻塞并发读。MVCC可以通过乐观锁的方式,在可重复读隔离级别下来解
  • 2024-12-16MVCC多版本并发控制机制学习随笔
    MVCC多版本并发控制机制Mysql在可重复读隔离级别下如何保证事务较高的隔离性,同样的sql查询语句在一个事务里多次执行查询结果相同,就算其它事务对数据有修改也不会影响当前事务sql语句的查询结果。这个隔离性就是靠MVCC(Multi-VersionConcurrencyControl)机制来保证的。对一行
  • 2024-12-02MySQL底层概述—9.ACID与事务
    大纲1.ACID之原子性2.ACID之持久性3.ACID之隔离性4.ACID之一致性5.ACID的关系6.事务控制演进之排队7.事务控制演进之排它锁8.事务控制演进之读写锁9.事务控制演进之MVCC10.事务隔离级别之隔离级别的类型11.事务隔离级别之和锁的关系12.事务隔离级别之隔离级别的控制
  • 2024-11-29MySQL事务-2024-11-29
    [学习记录]MySQL事务学习目标在REPEATABLEREAD隔离级别下,事务A执行select,事务B执行insert,看看锁到底是什么情况.同时重点看看,id是varchar但是写sql时候写的是number,会有什么危害SQL代码块记录1.事务A执行select,加S锁.且仅通过主键,过滤出一条结果.事
  • 2024-11-29hhdb数据库介绍(9-26)
    计算节点参数说明masterSourceInitWaitTimeout参数说明:PropertyValue参数值masterSourceInitWaitTimeout是否可见否参数说明启动时数据节点中主存储节点初始化超时时间默认值300最小值0最大值600Reload是否生效是参数作用:启动时,主存储
  • 2024-11-23MVCC 实现原理
      概念  MVCC是InnoDB用于多版本并发控制,数据库通过它能够做到遇到并发读写的时候,在不加锁的前提下实现安全的并发读操作,是一种乐观锁的实现方式,能大大提高数据库的并发性能,还可以解决脏读,不可重复读的事务隔离问题。  生效的隔离级别  MVCC只在读已提交(ReadCommi
  • 2024-10-10MySQL之innodb_flush_log_at_trx_commit和sync_binlog
    innodb_flush_log_at_trx_commit和sync_binlog两个参数是控制MySQL磁盘写入策略以及数据安全性的关键参数,它们的配置对于mysql性能有很大的影响一、innodb_flush_log_at_trx_commitinnodb_flush_log_at_trx_commit:是InnoDB引擎特有的,ib_logfile的刷新方式(ib_logfile:存放In
  • 2024-09-19msyql排查锁超时和死锁
    一、锁超时先查看当前事务,看看有没有事务时间超时的SELECT*FROMINFORMATION_SCHEMA.INNODB_TRX;查到如下结果:INSERTINTOinformation_schema.INNODB_TRX(trx_id,trx_state,trx_started,trx_requested_lock_id,trx_wait_started,trx_weight,trx_mysql_th
  • 2024-09-14MVCC与锁
    MVCC与锁锁基本原理当事务想要改动记录时,会查看内存中有没有跟该记录相关联的锁结构没有的话就生成一个is_waiting为false的锁结构与之关联,代表获取锁成功;如果发现该记录已经有锁关联了,会生成一个is_waiting为true的锁结构,代表获取锁失败,进入等待状态;如果加锁的事务结束,将释
  • 2024-09-14MySQL事物原理
    事务    在MySQL服务中,系统的主线程负责监听连接,而多个连接线程负责处理连接。这时候多个SQL语句操作数据库,就会出现事务多并发,交叉处理。比如银行存钱后再取钱,如果存钱的中途撤销操作,但取钱操作已经完成等等。        事务是一个工作单元,它由一系列操作组成
  • 2024-09-05MySQL 中如何定位 DDL 被阻塞的问题
    经常碰到开发、测试童鞋会问,线下开发、测试环境,执行了一个DDL,发现很久都没有执行完,是不是被阻塞了?要怎么解决?包括在群里,也经常会碰到类似问题:DDL被阻塞了,如何找到阻塞它的SQL?实际上,如何解决DDL被阻塞的问题,是MySQL中一个共性且高频的问题。下面,就这个问题,给一个清晰明了
  • 2024-08-22MYSQL长事务排查
    查看造成等待的事务执行SQLSELECTtmp.waiting_thread'等待线程ID',tmp.waiting_trx_id'等待事务ID',tmp.wating_trx_state等待事务状态,tmp.waiting_query等待语句,case when(tmp.waiting_time-28800)>0then(tmp.waiting_time-28800) elsetmp
  • 2024-08-19MVCC 详解
    MVCC简单理解MVCC,全称Multi-VersionConcurrencyControl,是多版本并发控制的意思。在高并发情况下操作数据库可能会出现脏写、脏读、不可重复度、幻读这四个问题。通过MVCC可以实现在不加锁的前提下避免一些问题。MVCC的实现原理多版本首先,我们引入一个概念,即行数
  • 2024-08-13【华为云MySQL技术专栏】MySQL 8.0事务提交原理解析!
    摘要:当多个引擎/节点同时访问和修改数据时,如何保证数据在各个引擎/节点之间的一致性成为了一项挑战。本文将深入探讨MySQL集群在保持数据一致性的解决方案。本文分享自华为云社区《【华为云MySQL技术专栏】MySQL8.0事务提交原理解析!》,作者:GaussDB数据库。 1.概述MySQL是一
  • 2024-08-072024最新Mysql锁机制与优化实践以及MVCC底层原理剖析
    锁机制详解锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除了传统的计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供需要用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一
  • 2024-08-07MYSQL死锁分析案例二(高并发增删改同一条记录)
    1、建表CREATETABLE`t1`(`id`intNOTNULL,`name`varchar(200)DEFAULTNULL,`age`intDEFAULTNULL,PRIMARYKEY(`id`),KEY`idx111`(`name`),KEY`idx_age`(`age`))ENGINE=InnoDBDEFAULTCHARSET=utf8mb4COLLATE=utf8mb4_0900_ai_ci2、数据
  • 2024-07-23MySQL 系列八:MVCC
    Author:ACatSmilingSince:2024-07-22什么是MVCCMVCC:MultiversionConcurrencyControl,多版本并发控制。顾名思义,MVCC是通过数据行的多个版本管理来实现数据库的并发控制。这项技术使得在InnoDB的事务隔离级别下执行一致性读操作有了保证。换言之,就是为了查询一些正在被另
  • 2024-07-17【面试题】MVCC多版本并发控制
    多版本并发控制指的就是维护一个数据的多个版本,,是得读写操作没有冲突;MVCC和锁(排他锁)也是事务隔离性的保证就好比以下的例子,我们查询id为30的记录到底是查询的是哪个事务所有修改的数据呢?这个就是MVCC的特点了,MVCC可保证我们读写操作没有冲突MVCC的具体实现,主要是依赖于数据