问题问题原文是这样的:假如在MySQL事务里,给某个表的一行加了共享锁,理论上这个表本身会自动加上意向共享锁,那么能不能用sql查出这个表加了意向锁?回答答案是肯定的,当然可以执行SQL查询表上的IS锁加锁状态。先声明,我们本次讨论的是MySQL里的InnoDB引擎表,下面讨论的内容都是基于这个前提。在揭晓答案之前,多介绍点InnoDB引擎锁相关的一些知识吧。主要有以下几点●InnoDB引擎表既支持表级锁,也支持行级锁。●加表级...
2022-08-31 15:48:21 4485浏览 0点赞 0回复 0收藏
0.前言GreatSQL运行更平稳,不会有大的抖动。MySQL官方版本的MGR更适合在中小规模业务环境下运行。1.GreatSQL的优势GreatSQL的优势在于提升了MGR的性能及可靠性,及修复了众多bug。主要有以下几点:●提升大事务并发性能及稳定性●优化MGR队列garbagecollect机制、改进流控算法,以及减少每次发送数据量,避免性能抖动●解决了AFTER模式下,存在节点加入集群时容易出错的问题●在AFTER模式下,强一致性采用多数派原则,以适应网...
2022-08-31 15:43:42 4907浏览 0点赞 0回复 0收藏
0.前言是什么原因不敢上MySQLMGR?1.什么是MySQLMGR当我在群里说起MySQLMGR时,的确还有人不知道这是啥东东。有群友打趣,说这是:●美国人●卖狗肉●蒙古人我只能说,你们真的都是天才。言归正传。MySQLMGR是MySQL组复制(GroupReplication)的简称。MGR是一种基于sharednothing的,更方便实现数据一致性及高可用集群方案,此外它还支持故障自动检测及多节点并行写等特性。它由一组MySQL实例构成,每个实例都有一份完整的数据...
2022-08-31 15:43:29 5348浏览 0点赞 0回复 0收藏
引言批量更新数据,不同于这种updateaa+1wherepk500,而是需要对每一行进行单独更新updatea1wherepk1;updatea12wherepk7;...这样连续多行update语句的场景,是少见的。可以说是偶然也是一种必然,在GreatDB5.0的开发过程中,我们需要对多语句批量update的场景进行优化。两种多行更新操作的耗时对比在我们对表做多行更新的时候通常会遇到以下两种情况1.单语句批量更新(updateaa+1wherepk500)2.多语句批量更新(updatea1wherepk...
2022-08-31 15:43:18 9393浏览 0点赞 0回复 0收藏
一、现象说明在排查问题时发现MySQL主备做了切换,而查看MySQL服务是正常的,DBA也没有做切换操作,服务器也无维护操作,万幸的是业务还没有受到大的波及。这到底是是为什么呢?假设原主服务器地址为:172.16.87.72,原备主服务器地址为:172.16.87.123。二、排查思路1.通过监控查看MySQL的各个指标2.查看双主(keepalived)服务切换日志3.MySQL错误日志信息三、问题排查3.1通过监控系统查看MySQL监控指标,判断故障发生的具体...
2022-08-31 15:43:02 5380浏览 0点赞 0回复 0收藏
一、背景随着云服务在各行各业的高速增长,传统IT服务正在逐步向云服务转变。在数据库方面,由于传统数据库管理的高复杂性、高成本以及低效率,导致越来越多的企业使用DBaaS作为其替代品。GreatRDS作为数据库服务的提供商,为用户提供了一套完整的DBaaS解决方案。DBaaS将数据库作为服务来交付,任何人都可以轻易地创建、使用、扩容和销毁数据库实例,由基础平台负责监控和运维,开发者可以做到只关心业务而屏蔽底层细节。DBaaS...
2022-08-31 15:42:33 5514浏览 0点赞 0回复 0收藏
背景在一台旧的centos7服务器上面新安装了mysql8.0.19,使用下面的初始化命令mysqldinitializeinsecureusermysqlbasedirusrlocalmysqllowercasetablenames1datadirdatamysql初始化且启动成功后,使用命令mysqlSdatamysqlmysql.sock用于登录实例做其他操作,遇到故障。定位过程:在只使用socket无法登陆数据库的情况下,做了如下测试mysqlSdatamysqlmysql.sock无法登陆返回报错mysqldefaultsfiledatamysqlmy.cnf正常登陆数据库my...
2022-08-31 15:42:19 4732浏览 0点赞 0回复 0收藏
本文为万里开源数据库测试组在构建测试平台的过程中,对于探索阶段进行的阶段性总结。撰稿时间仓促,如有错误疏漏,烦请诸位读者指正。测什么与怎么测传说中有三个问题能直击灵魂:“你是谁?从哪来?到哪去?”对于测试人员来说,“你是谁”这个问题已经解决了,剩下两个问题也随之变成了“测什么”和“怎么测”。传统单机数据库作为本系列的第一篇,我们先来聊一聊传统单机数据库。测什么如果从代码开始,由内而外进行总结的...
2022-08-31 15:42:00 5689浏览 0点赞 0回复 0收藏
客户发给我一个SQL,让我看看,为什么执行几分钟没有执行完。我第一眼看到SQL的时候,我也觉得很简单,优化过程也比较简单,但是带来的分析过程与经验还是值得分享的。SQL语句如下:updateapreceivebenefitslogsetorderstateiorderstatewhererequestidiorderid;但是这个SQL执行时被严重阻塞了该SQL的执行计划疑问1发现执行计划key走的主键,但是细看行数,会发现是全表扫描了数据。如果没有可用索引的情况下,执行计划为什么显...
2022-08-31 15:41:47 5881浏览 0点赞 0回复 0收藏
0.导读相同的账号、密码,手动客户端连接可以成功,通过MySQLConnectors却失败了,为什么?1.现象描述通过MySQLCAPI编写的一个程序,在进行用户登录操作的时候,程序报错,登录失败。但是如果通过mysql客户端,手动登录成功后,再启动客户端程序,不再报错,程序运行成功。2.抓包分析问题学会抓包,就超越了90%的程序员。sudotcpdumpianytcpandportxxxs1500wfilenamevC程序登录失败时的包前两个包很正常,第三个包第一次见,wir...
2022-08-31 15:41:34 5579浏览 0点赞 0回复 0收藏
问题运行下面的这段Python代码,却总是无法更新数据:importpymysqlconnpymysql.connect(host'127.0.0.1',user'yewen',passwd'YeWen.3306',port3306,db'test',charset'utf8mb4')curconn.cursor()sql"updatet1setc3rand()10240wherec1rand()1024"cur.execute(sql)cur.close()conn.close()而运行下面的这段看起来一样的代码,却可以正常删表:importpymysqlconnpymysql.connect(host'127.0.0.1',user'yewen',passwd'YeWen.3306',p...
2022-08-31 15:40:09 4685浏览 0点赞 0回复 0收藏