trx
  • 2024-07-03MySQL-16.MVCC(多版本并发控制)
    C-16.多版本并发控制1.什么是MVCCMVCC(MultiversionConcurrencyControl),多版本并发控制。顾名思义,MVCC是通过数据行的多个版本管理来实现数据库的并发控制。这项技术使得在InnoDB的事务隔离级别下执行一致性读操作有了保证。换言之,就是为了查询一些正在被另一事务更新的行,并且
  • 2024-07-02Mysql MVCC多版本解析
    1.首先各行数据,都有一个trx_id(事务ID)和回滚指针,形成一个链表数据结构的数据。其实这便是undo.log(回滚日志)2.当select查询数据的时候,还会生成视图数据。其中包含未提交的最小事务、未提交事务ID数组、应该分配下一个的事务ID、创建视图的事务ID首先会生成readview,将未提交的事
  • 2024-06-19百度二面,有点小激动!附面试题
    前几天刚面完百度,这不,没两天就收到二面邀请了,还有点小激动呢!来看看这次都问了哪些面试题吧,附答案仅供参考。ConsurrentHashMap如何计算下标?ConsurrentHashMap计算下标和HashMap类似,它的主要执行流程有以下两步:计算key哈希值:JDK1.7:key.hashCode()。JDK1.8+:((h=key.ha
  • 2024-06-18MySQL常见的后端面试题,你会几道?
     为什么分库分表单表数据量过大,会出现慢查询,所以需要水平分表可以把低频、高频的字段分开为多个表,低频的表作为附加表,且逻辑更加清晰,性能更优随着系统的业务模块的增多,放到单库会增加其复杂度,逻辑不清晰,不好维护,所以会对业务进行微服务拆分,同时拆分数据库怎么分库分
  • 2024-06-14数据库中的锁
    一、MySQL中的锁表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。页面锁(gap锁,间隙锁):开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁
  • 2024-05-23事务间的可见性
    事务内部的数据修改对事物本身可见,对其他事务要取决于事务隔离级别。事务间为了描述事务间可见性,引入几个数据库内部变量。trx_id:某个事务对聚集索引记录修改时,trx_id会记录该事务的idm_ids:创建read_view时,已开启但未commit的事务(活跃状态事务)id集合。min_trx_id:创建re
  • 2024-05-22波场转账能量手续费仅需3TRX,智能计算并购买能量
    本文主要介绍通过使用一些小工具,帮你大幅降低(能降低70-80%)波场Tron每次转账USDT所花费的燃油费,也就是TRX。iDataRiver提供的波场智能助手可以一键智能计算并购买能量,手续费可以从原来的13TRX降到3TRX,相当于接近2折。工具地址https://idatariver.com/zh-cn/pages/tron-helper
  • 2024-05-21记一次MySQL执行修改语句超时问题
    异常问题原因分析这个问题发生在开发环境,怀疑是提交事务时终止项目运行,没有提交该事务,造成死锁调试该事务时时间太长,为什么说有这个原因呢,因为通过查找日志显示Theclientwasdisconnectedbytheserverbecauseofinactivity.Seewait_timeoutandinteractive_timeo
  • 2024-05-08Mysql-Mvcc原理
    0.背景在mysql的并发访问中,有几个典型的并发场景:读-读:无需处理,都是读取,不会对数据有影响。写-写:由于都涉及到数据的修改,不可能乱改,所以没有较好的方式来处理,一般都得加锁。读-写:读写场景,加锁当然ok。不过读操作是很频繁的,一但写数据就不让读取了,这种情况是让人很难受的
  • 2024-04-27MySQL 中表空间的查看和清理
    /*查看所有数据库容量大小*/SELECTtable_schema,table_name,data_free,ENGINEFROMinformation_schema.tablesWHEREtable_schemaNOTIN('sys','mysql','performance_schema','information_schema','test')ANDdata
  • 2024-04-17mysql问题排查常用脚本
    查询出执行时间较长的进程select*frominformation_schema.processlistwherecommand!='Sleep'andtime>5*60orderbytimedesc;select*frominformation_schema.processlistwhereCommand!='Sleep'orderbyTimedesc;查看进程showfullprocess
  • 2024-04-17mysql锁表查询
    一、查询所有进程showfullprocesslist;字段说明id列,用户登录mysql时,系统分配的"connection_id",可以使用函数connection_id()查看user列,显示当前用户。如果不是root,这个命令就只显示用户权限范围的sql语句host列,显示这个语句是从哪个ip的哪个端口上发的,可以用来跟踪出现
  • 2024-04-11mysql查询锁表和是否表锁
    #查询是否有锁表SHOWOPENTABLESFROM数据库WHEREin_use>0#查询被锁的表SELECT*FROMINFORMATION_SCHEMA.INNODB_LOCKS;#查询进程showprocesslist;#杀死进程killxx;#查看正在锁的事务select*frominformation_schema.INNODB_LOCKS;#杀死进程id(就是[se
  • 2024-04-07MVCC(解决MySql中的并发事务的隔离性)
     MVCC如何保证事务的隔离性?1.排他锁:如一个事务获取了一个数据行的排他锁,其他事务就不能再获取改行的其他锁。2.MVCC:多版本并发控制。MVCC:1.隐藏字段1.DB_TRX_ID:最近修改事务的id。默认值从0开始,每次被修改自增1。也就是说每有一个事务修改了当前数据,这条数据的该字
  • 2024-04-02MVCC多版本并发控制
    MVCC(MultiversionConcurrencyControl)中文全程叫多版本并发控制,是现代数据库(包括MySQL、Oracle、PostgreSQL等)引擎实现中常用的处理读写冲突的手段,目的在于提高数据库高并发场景下的吞吐性能。一、undolog我们在进行数据更新操作的时候,不仅会记录redolog日志,而且也会记
  • 2024-03-17诚意满满之MySQL实现事务隔离的秘诀:锁与MVCC
    如果对事务没有太多理解,可以看前面三篇:诚意满满之讲透事务诚意满满之讲透事务隔离级别诚意满满之MySQL如何实现原子性、持久性不看前三篇也没有关系,知识点是独立的。MySQL的四个事务隔离级别:读未提交、读已提交、可重复读、串行读。其中,读未提交即是不加任何限制,串行读则
  • 2024-03-16详解MySQL的MVCC(ReadView部分解析C++源码)
    文章目录1.什么是MVCC2.MVCC核心组成(三大件)2.1MVCC为什么需要三大件3.隐藏字段4.undolog4.1模拟版本链数据形成过程5.ReadView5.1m_ids5.2m_creator_trx_id5.3m_low_limit_id5.4m_up_limit_id5.5可见性分析算法6.MVCC流程模拟6.1RC隔离级别6.2RR隔离
  • 2024-03-11MySQL实现事务隔离的原理
    一、readview四个字段create_trx_id:创建该readview的事务的事务idm_ids:创建readview时,当前数据库中的活跃事务(指启动但还没提交的事务)min_trx_id:m_ids的最小值max_trx_id:创建readview后,下一个事务的id二、聚簇索引的隐藏列trx_id:最近一次改动该聚簇索引记录的事务idrol
  • 2024-03-08MySQL(六):MySQL之MVCC
    1、事务的引入事务是数据库管理系统(DBMS)执行过程中的一个逻辑单位(不可再进行分割),由一个有限的数据库操作序列构成(多个DML语句),要不全部成功,要不全部不成功。如:A给B划钱,A的账户-100元,B的账户就要+100元,这两个update语句必须作为一个整体来执行,不然A扣钱了,B没有加
  • 2024-03-06mysql cpu 1300% 耗尽服务器cpu资源 系统变慢问题排查解决
    每到下午用户使用高峰期发现16核的服务器mysql的cpu经常占用超过1300% 总cpu占用95%以上,以前0.1秒的查询居然要查询10几秒用showprocesslist  命令查看mysql发现很多 select*frome_task_assignment_odmwheretask_code='xxx'看了下这个表有400多万数据,task_code没
  • 2024-03-03SQL intern 29题记录及心得
    表结构21、豹子手机号用户(4个连续数字,如6666)和非豹子号用户的笔均消费金额分别是多少?withbas(selectusr_id,casewhenphone_numREGEXP'[0-9](?=\\1{3})'THEN'Leopard'`else'no-Leopard'`endasis_豹子fromid_inf)selectavg(a.trx_amt),is_豹
  • 2024-02-27由select for update锁等待问题引发的深入思考
    关于MySQL的加锁机制,其实十分复杂,不同的隔离级别,是否是主键或索引,锁的粒度等等。很多工作了很多年的MySQLDBA也不能把各种加锁场景一一讲清楚。有时候一个简单的锁等待场景都值得深入研究,大家更多的是知其然而不知其所以然。本文介绍的是一个很常见的锁等待问题,但很少有人知道其
  • 2024-01-23MySQL事件自动kill运行时间超时的SQL
    delimiter$createeventmy_long_running_trx_monitoronscheduleevery1minutestarts'2015-09-1511:00:00'oncompletionpreserveenabledobegindeclarev_sqlvarchar(500);declareno_more_long_running_trxintegerdefault0;declarec_
  • 2024-01-22[转帖]MySQL多版本并发控制机制(MVCC)-源码浅析
    https://zhuanlan.zhihu.com/p/144682180 MySQL多版本并发控制机制(MVCC)-源码浅析前言作为一个数据库爱好者,自己动手写过简单的SQL解析器以及存储引擎,但感觉还是不够过瘾。<<事务处理-概念与技术>>诚然讲的非常透彻,但只能提纲挈领,不能让你玩转某个真正的数据库。感谢c
  • 2024-01-17如何实现数据库读一致性
    1导读数据的一致性是数据准确的重要指标,那如何实现数据的一致性呢?本文从事务特性和事务级别的角度和大家一起学习如何实现数据的读写一致性。2一致性1.数据的一致性:通常指关联数据之间的逻辑关系是否正确和完整。举个例子:某系统实现读写分离,读数据库是写数据库的备份库,小李