自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

老叶茶馆

叶金荣,ORACLEMySQLACE,专注MySQL十余年,分享MySQL技术及工作心得.个人站点:http://imysql.com

  • 博客(1253)
  • 收藏
  • 关注

原创 微信公众号AI回复初体验:能用,继续加油

近日,微信公众号上线了全新的「智能回复」功能,官方宣称通过AI学习历史文章内容,能自动回复读者私信,提升创作者与读者的互动效率。我第一时间开启该功能并测试了一周。总体感受:能用,但问题不少——打个70分,勉强及格。一、功能亮点:基础需求可满足解放人力,基础问答无压力开启功能后,AI能快速抓取历史文章中的高频关键词(如“教程下载”、“联系方式”),对读者的简单提问(如“如何获取代码?”)回复准确率较...

2025-01-23 11:18:30 765

转载 GreatSQL社区2024年全年总结(免费领红包封面)

* GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。社区2024年总结GreatSQL 社区在2024年度上持续迈进,成果斐然。一方面,开放了 GreatSQL 单机版以及三节点 MGR 集群的在线测试体验环境,让用户能够在线体验各种 GreatSQL 创新特性。另一方面,社区手册也持续更新,方便用户查阅。同时,社区积极拓展教育合作领域,成功走进郑州大学,联合开设 “G...

2025-01-21 16:28:40 6

转载 借助AI将PostgreSQL迁移到GreatSQL(文末可免费领红包封面)

* GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。本文将介绍如何从 PostgreSQL 到 GreatSQL 的数据迁移,并运用 AI 协助迁移更加方便。迁移的方式有很多,例如:pg_dump:导出SQL文件,修改后导入 GreatSQL 数据库。COPY:导出txt文本文件,导入 GreatSQL 数据库。pg2mysql:从 PostgreSQL 迁移到 MyS...

2025-01-17 11:21:03 11

原创 MySQL/GreatSQL 应对安全扫描的绝招

用魔法打败魔法背景有些所谓的安全扫描,其实只是简单判断 MySQL/GreatSQL 版本号,全然不考虑是否真的存在相应的风险,但是为了安全合规又不得不做出应对。思路针对这种简单粗暴的扫描手段,解决方案有这么几种:升级版本。这个最为彻底,但工作的代价最大。重新编译二进制包,在编译时自定义版本号。这个方法的代价较小,但治标不治本,而且对很多人来说,编译也不是轻松的事。新增代理层。利用代理层来响应版本...

2025-01-03 07:03:28 784

原创 MySQL 8.0/8.4执行DDL会丢数据?是,但影响有限

问题是有,但好在规避办法也比较简单,影响也有限。先说解决办法,从简单到麻烦:执行 ALTER TABLE 时,显式指定ALGORITHM=INSTANT/COPY,反正不要使用 INPLACE。适当调大 innodb_ddl_buffer_size 参数值,其默认值1MB,例如调大到100MB就可以应对大部分业务表的DDL操作场景。利用 pt-osc 或 gh-ost 等工具进行 Online D...

2024-12-18 07:04:28 974

原创 运行 GreatSQL 时为什么要求关闭透明大页

在大部分运维规范中,一般都会要求在运行 GreatSQL/MySQL 的环境中要关闭透明大页,那么到底什么是透明大页,为什么要关闭,打开有什么风险吗?在此之前,我也是有点懵的,本文试着回答这个疑问,并通过实验进行验证这个说法正确与否。实际上,Linux 系统中是有两种大页支持机制的,即 透明大页 和 静态大页,先来看看那二者有什么不同。P.S,本文的编辑整理借助 chatgpt 协助完成。1. 透...

2024-12-04 07:05:09 1081

原创 GreatSQL 运行时内存太高,超过90%怎么办(重发,附解决办法)

当 GreatSQL 数据库处于高并发高负载时,可能会发现 mysqld 进程的内存消耗远远超出设置的 innodb_buffer_pool_size 时,有时候甚至会高达甚至超过系统内存的90%,遇到这种问题时,心里经常会发慌,担心下一秒内存就会爆了发生 OOM,或者数据库hang死不响应。本文和大家试着使用 GreatSQL 中的 sys schema 和 performance_schema...

2024-11-27 12:00:57 962

原创 GreatSQL 运行时内存太高,超过90%怎么办

当 GreatSQL 数据库处于高并发高负载时,可能会发现 mysqld 进程的内存消耗远远超出设置的 innodb_buffer_pool_size 时,有时候甚至会高达甚至超过系统内存的90%,遇到这种问题时,心里经常会发慌,担心下一秒内存就会爆了发生 OOM,或者数据库hang死不响应。本文和大家试着使用 GreatSQL 中的 sys schema 和 performance_schema...

2024-11-26 07:01:16 999

原创 该开始关注 MySQL 8.4 了

写在前面MySQL 8.0 版本即将于 2026年4月结束服务支持,而 MySQL 8.4 作为当前的 LTS 版本,在 MySQL 的 Release Notes 和手册上都被加上了 current 标记。也就是说,对版本选择偏稳重的铁子们,可以在 8.0 版本后选择 8.4 版本。升级、降级 兼容关系表先看下未来几个主要版本之间的 升级、降级 兼容关系表,作为选择具体哪个版本之前的重要参考之一...

2024-09-03 07:04:48 2471

原创 自建Docker私有镜像仓库

如何在 CentOS 8 中搭建 Docker 私有镜像仓库。先行安装了 Docker,本文中使用的 Docker 版本是 20.10.9。$docker--versionDockerversion20.10.9,buildc2ea9bc由于需要使用远程访问,因此需要使用网络模块,并且要保证此模块开机自动启动。$cat>/etc/modules-load.d/docker...

2024-08-19 17:31:16 455

原创 多阶段构建后,Docker镜像大小只有原来的1/6

简介在构建 Docker 镜像时,常遇到以下问题:每一次执行 RUN 命令会让镜像新增一层 layer,导致镜像变大,虽然通过 && 连接多个命令能缓解此问题,但如果命令之间用到 Docker 指令例如 COPY、WORKDIR 等,依然会导致多个layer。有些工具在构建过程中会用到,但是最终的镜像是不需要的(例如本案里中编译 GreatSQL 需要安装 cmake, gcc 等...

2024-08-15 10:24:37 835

原创 在 Docker 容器中使用 GreatSQL VIP

GreatSQL Docker 镜像不支持在 Docker 中使用 VIP 功能。原因如下:在 Docker 中,无法用 systemd 方式来启动 GreatSQL。在打包时,也没有将 mysqld 程序文件属主改为 root,并加上 setcap 提权。因此,想要在 Docker 中使用 GreatSQL VIP 的话,需要自行处理。下面介绍如何在 Docker 容器中使用 GreatSQL ...

2024-08-13 16:00:04 595

转载 GreatSQL 8.0.32-26 GA(2024.8.5)

* GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。版本信息发布时间:2024年08月05日版本号:8.0.32-26, Revision a68b3034c3d下载链接:https://gitee.com/GreatSQL/GreatSQL/releases/tag/GreatSQL-8.0.32-26用户手册:https://greatsql.cn/docs/8.0...

2024-08-05 11:30:28 110

原创 慎重升级到MySQL 8.0.38及更高版本(文末附规避风险办法)

昨日,Percona 资深工程师 Marco Tusa 爆料,升级到 MySQL 8.0.38 版本后,当实例中的表个数超过一万个,实例重启后会发生 Crash 而失败,即便是重启时加上 validate_tablespace_paths=OFF 也不行。这个问题在 >= 8.0.38 版本中存在,包括 8.4.1 和 9.0.0。详细复现过程参见:https://perconadev.at...

2024-07-12 15:09:59 1466

原创 Oracle MySQL,怒其不争,自甘堕落

我刚在前文MySQL 9.0发布,号称支持向量(Vector),但我却看不懂Oracle到底在玩什么中吐槽 MySQL 9.0 手册和release notes里只字不提新增Vector(向量)数据类型及相关函数的事,后脚就被piapia打脸。前文发完后,MySQL 官方徐老师(公众号:MySQL解决方案工程师)也证实了我的猜想:在 MySQL 9.0 里新增向量数据类型是为了 Heatwav...

2024-07-04 09:23:16 427

原创 MySQL 9.0发布,号称支持向量(Vector),但我却看不懂Oracle到底在玩什么

我历来对这种每个大版本里的第一个小版本都不感冒,认为最多保持关注即可,无需大惊小怪。认真阅读新版本手册中的 What Is New这部分内容,以及 release notes,了解新版本的动向及意图基本足矣。但这次的MySQL 9.0发布,却激起了涟漪。从昨晚开始,MySQL 圈就沸腾了,都在讨论9.0新版本。Oracle 官方 blog 推文里爆料即将新增 Vector 数据类型New!Ve...

2024-07-02 08:58:13 513

转载 Slave SQL线程与PXB FTWRL死锁问题分析

* GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。1. 问题背景2.27号凌晨生产环境MySQL备库在执行备份期间出现因FLUSH TABLES WITH READ LOCK未释放导致备库复制延时拉大,慢日志内看持锁接近25分钟未释放。版本:MySQL 5.7.21PXB 2.4.18慢查询日志:备份脚本中的备份命令:mysql_kill.sh的主要逻辑内容:备份参数...

2024-05-18 07:48:16 104

转载 GreatSQL统计信息维护管理

* GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。相关知识点:INNODB_STATS_PERSIST=ON或用STATS_PERSIST=1定义单个表时,优化器统计信息将持久化到磁盘。默认情况下,innodb_stats_persistent是启用的。持久统计信息存储在mysql.innodb_table_stats和mysql.innodb_index_stats...

2024-05-16 08:34:11 74

转载 GreatSQL死锁案例分析及扩展解读

* GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。1.背景概述客户业务发生死锁的报错,根据业务程序日志及业务流程,发现造成死锁的原因是:事务1 delete + insert ,事务2 delete + insert,这两个事务交替执行导致的死锁;由于GAP锁阻塞了插入意向锁,并且当delete的数据存在时死锁不会发生,当delete的数据不存在时,会发生死锁。2.问...

2024-05-14 07:01:50 90

转载 GreatSQL优化技巧:半连接(semijoin)优化

*GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。何为半连接?半连接是在GreatSQL内部采用的一种执行子查询的方式,semi join不是语法关键字,不能像使用inner join、left join、right join这种语法关键字一样提供给用户来编写SQL语句。两个表t1表和t2表进行半连接的含义是:对于t1表的某条记录来说,我们只关心在t2表中是否存在与之...

2024-05-11 07:03:55 183

转载 MySQL复制从库延迟优化思路

* GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。1、什么是MySQL复制延迟?本质是MySQL从库的relay log回放跟不上主库生成速度,产生延迟2、主从延迟常见的原因有哪些?1、大事务,从库回放时间较长,导致主从延迟2、主库写入过于频繁,从库回放跟不上3、参数配置不合理4、主从硬件差异5、网络延迟6、表没有主键或者索引大量频繁的更新7、一些读写分离的架构,从库...

2024-05-09 07:03:54 212

转载 MySQL复制从库延迟原因深入分析

* GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。背景介绍近来一套业务系统,从库一直处于延迟状态,无法追上主库,导致业务风险较大。从资源上看,从库的CPU、IO、网络使用率较低,不存在服务器压力过高导致回放慢的情况;从库开启了并行回放;在从库上执行SHOW PROCESSLIST看到没有回放线程阻塞,回放一直在持续;解析relay log日志文件,发现其中并没大事...

2024-05-07 14:11:23 173

转载 给MySQL 5.7打补丁,并且编译出和官方一致的Linux Generic包

* GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。需求来源某客户现场业务系统出现了查询丢失数据问题(数据库为MySQL 5.7.21,使用Linux Generic包部署)。已查明:丢数据问题是触发了MySQL 5.7的一个bug,该bug在5.7的后继版本已修复。客户不想升级数据库版本,希望将fix的代码打到5.7.21重新编译后替换二进制。编译步骤准备包、源码和编...

2024-05-05 07:43:49 192

转载 探究网络延迟对事务的影响

* GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。1.背景概述最近在做数据同步测试,需要通过DTS将kafka中的数据同步到数据库中,4G的数据量同步到数据库用了大约4个多小时,这看起来很不合理。查看数据库所在主机的CPU,IO的使用率都不高,没有瓶颈。最后通过排查发现由于kafka 和DTS 以及数据库实例不再同一个机房,网络延迟较大,导致同步速率缓慢。将kafka...

2024-04-30 08:46:35 92

转载 SEQUENCE在GreatSQL与Oracle中的区别

* GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。前言在使用Oracle数据库SEQUENCE功能时,发现Oracle对边界处理比较奇怪。刚好GreatSQL也支持SEQUENCE,就拿来一起比较一下。先说结论:GreatSQL 的使用基本和Oracle基本一致,但是对 START WITH 的边界限制有所不同。本次测试使用数据库的版本号#Oracle版本BANN...

2024-04-27 07:00:46 61

转载 GreatSQL的多层SP中Cursor的m_max_cursor_index相关BUG分析

* GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。一、问题发现在一次开发中在sp中使用多层cursor的时候想知道每层的m_max_cursor_index值分别是多少,以用来做后续开发。于是做了以下的试验,但是发现第一个level=2那层的m_max_cursor_index的值有点问题。注:本次使用的GreatSQL 8.0.32-25。SQL语句示例:great...

2024-04-25 07:01:08 67

转载 源码解析丨一次慢SQL排查之旅

* GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。当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.7607...

2024-04-23 08:45:28 83

转载 面试题:INSERT...t...SELECT s会对s表加锁吗

* GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。前言:insert into t2 select * from t1;这条语句会对查询表 t1 加锁吗?不要轻易下结论。对GreatSQL的锁进行研究之前,首先要确认一下事务的隔离级别,不同的事务隔离级别,锁的表现是不一样的。实验:创建测试表t1,t2greatsql>createtablet1(idi...

2024-04-20 13:50:13 71

转载 工具分享丨分析GreatSQL Binglog神器

* GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。在GreatSQL中,Binlog可以说是 GreatSQL 中比较重要的日志了,在日常开发及运维过程中经常会遇到。Binlog即Binary Log,二进制日志文件,也叫作变更日志(Update Log)。详细Binglog日志介绍:https://greatsql.cn/docs/8032-25/user-manu...

2024-04-18 07:00:39 61

转载 被很多人忽视的NULL值对NOT IN子查询结果的影响问题

* GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。前言开发人员写的 SQL 语句中经常会用到 in,exists,not in,not exists 这类子查询,通常,含 in、exists 的子查询称为半连接(semijoin),含 not in、 not exists 的子查询被称之为反连接。经常会有技术人员来评论 in 与 exists 效率孰高孰低的问题。我在...

2024-04-16 07:00:11 101

转载 MySQL 8.0.26版本升级32版本查询数据为空的跟踪

* GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。某业务系统将MySQL 8.0.26升级为 GreatSQL 8.0.32-24 后,某些特定的SQL语句不能查询到数据。经测试 MySQL 8.0.32也存在相同的问题此BUG已在 GreatSQL 8.0.32-25 版本中解决接到客户反馈的问题后,对问题进行了复现和分析。版本信息greatsql>sele...

2024-04-13 07:00:59 86

转载 被误写入Slave的数据如何恢复到主库

*GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。背景在GreatSQL主从复制环境中,有时候可能会出现一些误操作,将本应该写入到主库的数据写入到了从库,导致主从数据不一致,影响数据同步。是否可以将写入从库的数据同步写入主库呢?测试环境角色IP地址数据库开放端口版本主库192.168.137.1793308GreatSQL 8.0.32从库192.168.137.18...

2024-04-11 09:08:22 57

转载 MyCat分库分表实时同步到GreatSQL

*GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。这个事情怎么产生的MyCat作为经典的分库分表中间件,在长时间内被广泛认为是管理超大MySQL数据库集合的有效解决方案。近来接到客户需求,需要将MyCat集群迁移到GreatSQL中,并且在一段时间内需要实时从MyCat中同步数据到GreatSQL中,全量同步数据比较容易操作,增量同步有如下两个棘手的问题:多个serv...

2024-04-06 10:33:09 77

转载 SQL优化案例解析:MINUS改写为标量子查询后提升5倍,但还可以再快近百倍

* GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。写在前面(By老叶)从GreatSQL 8.0.32-25版本开始支持Rapid引擎,该引擎使得GreatSQL能满足联机分析(OLAP)查询请求。老叶尝试利用Rapid引擎优化本案例,结果是相当可喜的,对比如下:-SQL执行耗时(秒)Rows_examinedRead_keyRead_nextRead_rnd_nex...

2024-04-03 07:02:35 136

转载 关于GreatSQL字符集的总结

*GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。前言最近的SQL优化工作中经常遇到因字符集或校验规则不一致导致索引使用不了的问题,修改表的字符集或校验规则相当于把表重构,表中数据量大时,处理起来费时费力,希望应用开发者在设计之初时注意到此问题,让后期接手运维的小伙伴少一些负担。GreatSQL的字符集和校验规则种类繁多,提供灵活性的同时,也带来使用混乱的烦恼。本文对...

2024-04-02 07:00:42 79

转载 LOAD DATA中包含NULL导致主从报错结局

*GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。1.背景概述目前需要搭建一个从库,由于单表数据量较大,时间比较有限,考虑到导入导出的时间,并且GreatSQL支持并行load data的功能,能够加速数据的导入,因此决定使用 select into outfile 和 load data 的方式进行数据的迁移;在数据导入完成后进行数据同步,从库发生报错 1032 找...

2024-03-30 09:07:00 161

转载 GreatSQL登陆Arch Linux之旅

*GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。了解Arch LinuxArch Linux是一个轻量、灵活、基于x86-64架构的Linux发行版,遵循K.I.S.S.原则。注重代码正确、优雅和极简主义,期待用户能够愿意去理解系统的操作。1.简洁Arch Linux将简洁定义为:避免任何不必要的添加、修改和复杂增加。简单来说,archlinux 是一个可以让用户自...

2024-03-28 07:01:21 99

转载 GreatSQL Shell如何接管手动搭建(含仲裁节点)MGR集群

*GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。本文源自GreatSQL社区用户的一次提问:Q:一个包含仲裁节点(ARBITRATOR)的GreatSQL MGR集群,一开始是用手动方式构建,后来想用GreatSQL Shell接管,可以吗?A:是可以的,不过也有一定局限性具体的操作如下检查当前MGR集群情况greatsql>select*frompe...

2024-03-26 07:02:23 98

转载 荐书,爱可生开源社区《大智小技》

2024-03-20 15:57:00 113

原创 为什么SHOW TABLE STATUS显示Rows少了40%

1. 背景介绍测试环境中,有一个表执行 SHOW TABLE STATUS 时看到的 rows 结果总是和真实数量相差了将近40%:--执行SHOWTABLESTATUS,看到Rows只有约655万行数据greatsql>SHOWTABLESTATUSLIKE't1'\G***************************1.row****************...

2024-03-02 07:01:14 1096

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除