1.问题背景 2.27号凌晨生产环境MySQL备库在执行备份期间出现因FLUSHTABLESWITHREADLOCK未释放导致备库复制延时拉大,慢日志内看持锁接近25分钟未释放。 版本: MySQL5.7.21 PXB2.4.18 慢查询日志: 备份脚本中的备份命令: mysql_kill.sh的主要逻辑内容: 备份参数: 2.问题复现及分析 2.1问题分析 144是SQL线程,并行复制中的Coordinator线程; 145/146是并行复制的worker线程,145/146worker线程队列中的事务可以并行执行。 162线程是执行innobackup执行的flushtab...

  8MfSLxyzjZA4   4天前   21   0   0 MySQL

相关知识点: INNODB_STATS_PERSIST=ON或用STATS_PERSIST=1定义单个表时,优化器统计信息将持久化到磁盘。默认情况下,innodb_stats_persistent是启用的。 持久统计信息存储在mysql.innodb_table_stats和mysql.innodb_index_stats表中。 默认情况下启用的innodb_stats_auto_recalc变量控制当表中超过10%的行发生更改时是否自动计算统计信息。可以通过在创建或更改表时指定STATS_AUTO_RECALC子句来为单个表配置自动统计数据重新计算。 由于在后台进行的自动统计数据重新计算的异...

  8MfSLxyzjZA4   9天前   16   0   0 MySQL

1.环境说明 1.1源端SQLSserver 版本 IP 端口 MicrosoftSQLServer2017 192.168.140.160 1433 1.2目标端GreatSQL 版本 IP 端口 GreatSQL-8.0.32 192.168.139.86 3308 2.安装环境 2.1安装SQLServer环境 环境说明:借助Docker使用镜像启动数据库 2.1.1安装docker 1.安装基础软件包 $yuminstall-ywgetnet-toolsnfs-utilslrzszgccgcc-cmakecmakelibxml2-develope...

  8MfSLxyzjZA4   11天前   20   0   0 MySQL

1.背景概述 客户业务发生死锁的报错,根据业务程序日志及业务流程,发现造成死锁的原因是:事务1delete+insert,事务2delete+insert2个事务交替执行导致的死锁;由于GAP锁阻塞了插入意向锁,并且当delete的数据存在时死锁不会发生,当delete的数据不存在时,会发生死锁。 2.问题复现 本次测试基于GreatSQL-8.0.32-24,隔离级别为RR 2.1创建测试表 greatsql>createdatabasetest; greatsql>createtabletest(c1intuniquekey,c2int,c3int,c4int); grea...

  8MfSLxyzjZA4   14天前   14   0   0 MySQL

何为半连接? 半连接是在GreatSQL内部采用的一种执行子查询的方式,semijoin不是语法关键字,不能像使用innerjoin、leftjoin、rightjoin这种语法关键字一样提供给用户来编写SQL语句。 两个表t1表和t2表进行半连接的含义是:对于t1表的某条记录来说,我们只关心在t2表中是否存在与之匹配的记录,而不关心有多少条记录与之匹配,最终的结果集中只保留t1表的记录。 前面文章也提到过,含in、exists子查询的语句通常会采用半连接方式执行查询,但这不绝对,也有一些情况不适用半连接。比如: (1)外查询的where子句中,存在其他搜索条件使用OR操作符与IN子查询的条件...

  8MfSLxyzjZA4   16天前   15   0   0 MySQL

主从延迟调优思路 1、什么是主从延迟? 本质是从库的回放跟不上主库,回放阶段的延迟 2、主从延迟常见的原因有哪些? 1、大事务,从库回放时间较长,导致主从延迟 2、主库写入过于频繁,从库回放跟不上 3、参数配置不合理 4、主从硬件差异 5、网络延迟 6、表没有主键或者索引大量频繁的更新 7、一些读写分离的架构,从库的压力比较大 3、解决主从延迟有哪些方法 1、对于大事务,拆分成小事务 2、开启并行复制 3、升级从库硬件 4、尽量都有主键 4、什么是并行复制,参数有哪些? 回顾MySQL并行复制的路程 MySQL5.6是基于数据库级别的并行复制 slave-parallel-type=DATA...

  8MfSLxyzjZA4   18天前   25   0   0 MySQL

背景介绍 近来一套业务系统,从库一直处于延迟状态,无法追上主库,导致业务风险较大。从资源上看,从库的CPU、IO、网络使用率较低,不存在服务器压力过高导致回放慢的情况;从库开启了并行回放;在从库上执行showprocesslist看到没有回放线程阻塞,回放一直在持续;解析relay-log日志文件,发现其中并没大事务回放。 过程分析 现象确认 收到运维同事的反馈,有一套从库延迟的非常厉害,提供了showslavestatus延迟的截图信息 持续观察了一阵showslavestatus的变化,发现pos点位信息在不停的变化,Seconds_Behind_master也是不停的变化的,总体趋势还...

  8MfSLxyzjZA4   21天前   20   0   0 MySQL

GreatSQL成立于2021年,由万里数据库发起,是开放原子开源基金会旗下捐赠项目,及Gitee最有价值项目,拥有信通院可信开源社区+可信开源项目双认证。社区致力于通过开放的社区合作,构建自主开源数据库版本及开源数据库技术,推动开源数据库及应用生态繁荣发展。 为了帮助社区的小伙伴们更好地了解GreatSQL社区的实时进展,我们决定每月更新发布一次GreatSQL社区月报。月报的主要内容包括:整理展示最近一个月的社区大事动态,最近一个月内为项目提交过Commit的贡献者,并对近期重要的PR进行解析;同时还包含了社区上一个月发布的原创技术博客整理分类。 如果大家还希望未来在社区月报中增添哪些内容...

  8MfSLxyzjZA4   23天前   20   0   0 MySQL

5.7打补丁—编译和官方一致的Linux_Generic包 需求来源 某客户现场业务系统出现了查询丢失数据问题(数据库为MySQL5.7.21,使用Linux-Generic包部署)。 已查明:丢数据问题是触发了MySQL5.7的一个bug,该bug在5.7的后继版本已修复。 客户不想升级数据库版本,希望将fix的代码打到5.7.21重新编译后替换二进制。 编译步骤 准备包、源码和编译OS 从MySQL5.7.19到MySQL5.7.44,官方发布的Linux-Generic包一直使用的是glibc-2.12。 本文中,使用MySQL5.7.21进行编译,对应的官方release包如下: M...

  8MfSLxyzjZA4   24天前   23   0   0 MySQL

不同于Oracle:SEQUENCE的区别 前言 在使用Oracle数据库SEQUENCE功能时,发现Oracle对边界处理比较奇怪。刚好GreatSQL也支持SEQUENCE,就拿来一起比较一下。 先说结论:GreatSQL的使用基本和Oracle基本一致,但是对STARTWITH的边界限制有所不同。 本次测试使用数据库的版本号 Oracle版本 BANNER -------------------------------------------------------------------------------- OracleDatabase11gEnterpriseEditionRe...

  8MfSLxyzjZA4   25天前   30   0   0 MySQL

源码分析丨MySQL的多层SP中Cursor相关BUG 一、问题发现 在一次开发中在sp中使用多层cursor的时候想知道每层的m_max_cursor_index值分别是多少,以用来做后续开发。于是做了以下的试验,但是发现第一个level=2那层的m_max_cursor_index的值有点问题。 注:本次使用的MySQL数据库版本为最新的debug版本。 SQL语句示例: greatsql>CREATETABLEt1(aINT,bVARCHAR(10)); 以下注释里面是该层sp_pcontext的参数值。 DELIMITER$$ CREATEPROCEDUREprocessn...

  8MfSLxyzjZA4   30天前   18   0   0 MySQL

GreatSQL优化技巧:将MINUS改写为标量子查询 前言 minus指令运用在两个SQL语句上,取两个语句查询结果集的差集。它先找出第一个SQL所产生的结果,然后看这些结果有没有在第二个SQL的结果中,如果在,那这些数据就被去除,不会在最后的结果中出现,第二个SQL结果集比第一个SQL结果集多的数据也会被抛弃。这两天的优化工作中遇到这样一种案例,第一个SQL语句结果集很小,第二个SQL语句结果集很大,这种情况下我们怎么来优化处理呢? 实验 创建测试表 CREATETABLEt1(idintprimarykeyauto_increment, subscriber_iddecimal(20,0...

  8MfSLxyzjZA4   2024年04月01日   33   0   0 MySQL

1.背景概述 最近在做数据同步测试,需要通过DTS将kafka中的数据同步到数据库中,4G的数据量同步到数据库用了大约4个多小时,这看起来并不合理;此时查看数据库所在主机的CPU,IO的使用率都不高,没有瓶颈;最后通过排查发现由于kafka,DTS,数据库不再同一个机房,网络延迟较大,导致同步速率缓慢; 将kafka,DTS,数据库部署到同一个机房后,同步速度明显提升,只需要15分钟就能同步完。 2.问题复现 本次测试通过sysbench在不同网络延迟的情况下,进行数据写入及性能压测,对比网络延迟对数据库事务的影响。 2.1查看当前网络延迟 $ping192.168.137.162 PING...

  8MfSLxyzjZA4   2024年03月27日   35   0   0 MySQL

在GreatSQL中,Binlog可以说是GreatSQL中比较重要的日志了,在日常开发及运维过程中经常会遇到。Binlog即BinaryLog,二进制日志文件,也叫作变更日志(UpdateLog)。 详细Binglog日志介绍 Binglog主要应用于数据恢复和数据复制,但是在Binlog中也含有非常多有价值的信息,比如说: 数据修改事件 表结构修改事件 状态修改事件 事务控制事件 管理语句事件 ...... 事务控制事件涵盖了事务的起始时间、起始位置、结束时间和结束位置。通过这些详细信息,我们能够计算事务的大小,进而评估其是否属于大型事务,以及是否可能引起主从同步的延迟问题,及时发现...

  8MfSLxyzjZA4   2024年03月25日   39   0   0 MySQL

当long_query_time=1时(表info的id为主键),出现下面的慢日志,可能会让你吃惊 Time:2024-01-28T22:52:24.500491+08:00 User@Host:root[root]@[127.0.0.1]Id:8 Query_time:7.760787Lock_time:7.757456Rows_sent:0Rows_examined:0 useapple; SETtimestamp=1706453536; deletefrominfowhereid<10; 环境信息 配置 参数 ip 172.17.137.12 hostname ...

  8MfSLxyzjZA4   2024年03月22日   48   0   0 MySQL

背景 业务端遇到报错为"Deadlockfoundwhentryingtogetlock;tryrestartingtransaction"则表明有死锁发生 名称 配置 数据库版本 GreatSQL8.0.26 隔离级别 Read-Commited innodbstatus日志 greatsql>showengineinnodbstatus\G 1.row Type:InnoDB Name: Status: = 2024-01-2816:55:38140737023727360INNODBMONITOROUTPUT = Persecondaveragescalcu...

  8MfSLxyzjZA4   2024年03月18日   35   0   0 MySQL

前言 开发人员写的SQL语句中经常会用到in,exists,notin,notexists这类子查询,通常,含in、exists的子查询称为半连接(semijoin),含notin、notexists的子查询被称之为反连接,经常会有技术人员来评论in与exists效率孰高孰低的问题,我在SQL优化工作中也经常对这类子查询做优化改写,比如半连接改为内连接,反连接改为外连接等,哪个效率高是要根据执行计划做出判断的,本文不是为了讨论效率问题,是要提醒一点:notin子查询的结果集含NULL值时,会导致整个语句结果集返回空,这可能造成与SQL语句书写初衷不符。 实验 创建实验表t1,t2 greats...

  8MfSLxyzjZA4   2024年03月15日   13   0   0 MySQL

GreatSQL里也能用上RocksDB引擎 1.前言 RocksDB是基于Facebook开源的一种支持事务的、高度可压缩、高性能的MyRocks存储引擎,特别适用于高度压缩和大容量的数据。以下是一些关键特点: 高性能:LSM树结构使得RocksDB在写入密集型负载下表现卓越。它能够处理大量的写入操作,并且在写入操作上有较低的延迟。 可压缩存储:具有高度可压缩的特性,可以有效减小数据在磁盘上的占用空间。 事务支持:支持MySQL的事务语义,这使得它适用于要求事务性支持的应用场景。 定制化存储格式:允许用户通过定制化存储格式来满足其特定需求。 兼容性:兼容MySQL的API和协议。用户可...

  8MfSLxyzjZA4   2024年03月13日   63   0   0 MySQL

某业务系统将MySQL8.0.26升级为GreatSQL8.0.32-24后,某些特定的SQL语句不能查询到数据。经测试MySQL8.0.32也存在相同的问题 此BUG已在GreatSQL8.0.32-25版本中解决 MySQL8.0.26版本升级32版本查询数据为空的跟踪 接到客户反馈的问题后,对问题进行了复现和分析。 版本信息 greatsql>selectversion(); +-----------+ |version()| +-----------+ |8.0.32-24| +-----------+ 1rowinset(0.00sec) 建表语句 greatsql&g...

  8MfSLxyzjZA4   2024年03月11日   104   0   0 MySQL

前言: insertintot2selectfromt1;这条语句会对查询表t1加锁吗?不要轻易下结论。对GreatSQL的锁进行研究之前,首先要确认一下事务的隔离级别,不同的事务隔离级别,锁的表现是不一样的。 实验: 创建测试表t1,t2 greatsql>createtablet1(idintprimarykey,c1varchar(10),c2datetime,keyidx_c1(c1)); greatsql>createtablet2liket1; id列为主键,c1列上有普通索引 创建存储过程,向t1表插入测试数据 greatsql>delimiter// CR...

  8MfSLxyzjZA4   2024年03月06日   55   0   0 MySQL
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~