- 博客(370)
- 收藏
- 关注
原创 MySQL派生表查询大数据量无结果问题分析与解决
本文剖析 MySQL 派生表查询大数据量无结果问题,从现象调查到代码定位,给出修复方案,助你解决类似难题!
2025-06-20 10:11:26
333
原创 GreatSQL从库报错13146:字符集不一致问题处理
表中相关信息,可以看到contact列、tel列的字符集都为utf8mb4,排序规则为默认的 utf8mb4_0900_ai_ci;这段描述可以解释为什么在创建表时,如果没有明确指定列的字符集,则会使用该表或数据库的默认字符集。这意味着,如果为VARCHAR类型的列没有指定字符集,它将继承表或数据库层面定义的字符集。的方式进行数据恢复后配置同步,从库发生报错13146数据类型转换失败,导致同步异常;表的字符集两边不一致,主库为utf8mb3,从库为utf8mb4,那么所属列的字符集是否一致呢?
2025-06-18 11:00:11
424
原创 工具分享-从ibd文件中恢复数据的神器ibd2sql
ibd2sql是一个使用纯python3编写的离线解析MySQL InnoDB 存储引擎的ibd文件的工具。无第三方依赖包,使用GPL-3.0license。
2025-06-13 10:12:02
287
原创 dbops 助力 GreatSQL MGR架构安装部署
本文介绍用 dbops 部署 GreatSQL MGR 架构,含下载、配置、安装步骤,VIP 功能,速来学习!
2025-06-11 10:01:27
814
原创 GreatSQL连接数被打满的3种紧急解决方案
GreatSQL 连接数打满怎么办?本文分享 3 种紧急解决方案,含设置技巧、应急处理,助你保障数据库稳定,速看!
2025-06-04 10:22:36
615
原创 MySQL 派生表查询导致 Crash 的根源分析与解决方案
MySQL 8.0.32 派生表查询致 Crash?本文深度剖析根源,揭秘修复代码,复杂 SQL 问题应对有法,速来一探究竟!
2025-05-23 11:04:29
741
原创 MySQL派生条件下推优化导致自定义变量结果错误问题分析
MySQL 8.0.22 引入派生条件下推优化致自定义变量结果出错,8.0.28 修复,附规避措施,点击查看详细分析!
2025-05-22 10:15:01
777
原创 在Oracle到GreatSQL迁移中排序规则改变引发的乱码问题分析及解决
Oracle 到 GreatSQL 迁移改排序规则引发乱码?本文深入分析根源,提供方案,助你快速解决,速来一探究竟!
2025-05-14 10:46:05
972
原创 使用 gt-checksum 分析迁移对象
本文以从 ORACLE 迁移到 GreatSQL 为例,介绍用 gt-checksum 分析迁移对象,含配置、执行及结果解析,完整呈现分析流程。
2025-04-25 10:08:15
621
原创 Java程序使用预处理语句的性能提升
本文通过 Java 程序对比常规 SQL 与预处理语句的 DML 性能,结果显示后者性能提升约 10%,重复 SQL 用它效率更高。
2025-04-23 10:30:47
279
原创 GreatSQL启动崩溃:jemalloc依赖缺失问题排查
本文排查 GreatSQL 启动崩溃问题,发现系 jemalloc 依赖缺失。mysqld_safe默认用 jemalloc,mysqld用 ptmalloc,建议安装依赖提性能。
2025-04-18 10:55:20
707
原创 MySQL下200GB大表备份,利用传输表空间解决停服发版表备份问题
MySQL 8.0 下 200GB 大表备份,可利用传输表空间解决停服发版问题,秒级备份、零复制,适用于单实例大表快备。
2025-04-09 10:32:32
407
原创 事务处理对持久统计信息自动收集的影响
本文探讨事务处理对持久统计信息自动收集的影响,通过 INSERT 和 DELETE 测试,发现回滚后统计信息或不匹配,需ANALYZE TABLE修正。
2025-04-02 10:44:25
295
原创 dbops 助力 GreatSQL 单机架构安装部署
本文介绍用 dbops 部署 GreatSQL 单机架构,涵盖工具简介、环境信息、下载安装步骤,还可自定义安装目录,快来学习~
2025-03-28 09:38:49
919
原创 【GreatSQL优化器-18】GROUP_INDEX_SKIP_SCAN
优化器系列第十八篇,全网独家解析代码+例子,深入透彻地理解每一个细节。在本篇中,将聚焦于“GROUP_INDEX_SKIP_SCAN”。
2025-03-26 10:26:12
430
原创 【GreatSQL优化器-17】DYNAMIC RANGE
GreatSQL 的优化器有一种扫描方式是动态范围扫描方式,类似于“已读乱回”模式,这种模式是在表有多个索引的情况下,对驱动表连接的时候部分选择索引的情况。优化器没有找到好的索引可以使用,但发现在知道前面表的列值后,可能会使用某些索引。对于前面表中的每个行组合,优化器检查是否可以使用 range 或 index merge 访问方法来检索行。虽然这不是很快,但比执行完全没有索引的连接要快。下面用一个简单的例子来说明直方图怎么应用在优化器。
2025-03-19 10:09:45
528
原创 优化GreatSQL日志文件空间占用
自动清理旧日志,告别磁盘爆满!通过 binlog/relay log/slow log/audit log 四大空间参数控制,智能管理日志文件总量,DBA 从此无忧。
2025-03-14 11:01:56
859
原创 【GreatSQL优化器-16】INDEX_SKIP_SCAN
优化器系列第十六篇,全网独家解析代码+例子,深入透彻地理解每一个细节。在本篇中,将聚焦于“INDEX_SKIP_SCAN”。
2025-03-12 10:29:02
478
原创 GreatSQL 8.0.32-27 GA (2025-3-10)
新增 Turbo 引擎加速查询,Rapid 引擎内核升级。优化 MGR 事务传输,完善插件,支持 Zstd 压缩提效率。改进兼容性和安全性,修复崩溃、丢数据等问题!
2025-03-10 11:06:58
1069
原创 GreatSQL5.7 与 8.0 对 DATE 非法值处理方式不同
MySQL 8.0 与 5.7 在 DATE 非法值处理上差异显著,本文不仅对比两者表现,还深入探讨成因,为从业者提供实操建议。
2025-03-07 14:05:59
949
原创 基于 MySQL 8.0 细粒度授权:单独授予 KILL 权限的优雅解决方案
MySQL 8.0 权限体系新变革!教你单独授予 KILL 权限,保障安全又灵活,附实战操作与关键要点,速学!
2025-03-05 14:39:42
851
原创 函数索引触发的一个有趣的问题
揭秘字符集差异导致的索引失效现象,解析整型列使用字符函数时的隐式转换陷阱,助开发者规避跨客户端索引兼容性问题,提升数据库查询优化技巧!
2025-02-26 10:25:22
546
原创 GreatSQL修改配置文件参数无法生效
GreatSQL 修改配置文件参数sql_require_primary_key遇失效问题,排查发现持久化影响,取消后重启生效。速来了解!
2025-02-24 10:12:50
542
原创 【GreatSQL优化器-15】index merge
优化器系列第十五篇,全网独家解析代码+例子,深入透彻地理解每一个细节。在本篇中,将聚焦于“index merge”。
2025-02-21 10:37:18
923
原创 【GreatSQL优化器-14】直方图应用
优化器系列第十四篇,全网独家解析代码+例子,深入透彻地理解每一个细节。在本篇中,将聚焦于“直方图应用”。
2025-02-19 10:17:21
336
原创 主从复制中定位回放慢涉及的表
主从架构下的性能问题,突发延迟且持续增长,经排查是 DELETE 事务回放缓慢所致。利用SHOW PROCESSLIST等命令,可定位到回放慢涉及的表,多为无索引且数据量庞大的表,这使得从库回放效率低下
2025-02-17 11:04:39
405
原创 【GreatSQL优化器-13】直方图
GreatSQL的优化器负责将SQL查询转换为尽可能高效的执行计划,但因为数据环境不断变化有可能导致优化器对查询数据了解不够充足,可能无法生成最优的执行计划进而影响查询效率,因此推出了直方图(histogram)功能来解决该问题。直方图用于统计字段值的分布情况,向优化器提供统计信息。利用直方图,可以对一张表的一列数据做分布统计,估算WHERE条件中过滤字段的选择率,从而帮助优化器更准确地估计查询过程中的行数,选择更高效的查询计划。直方图以灵活的JSON的格式存储。会基于表大小自动判断是否要进行取样操作。
2025-02-14 11:20:41
617
原创 【GreatSQL优化器-13】直方图
GreatSQL的优化器负责将SQL查询转换为尽可能高效的执行计划,但因为数据环境不断变化有可能导致优化器对查询数据了解不够充足,可能无法生成最优的执行计划进而影响查询效率,因此推出了直方图(histogram)功能来解决该问题。直方图用于统计字段值的分布情况,向优化器提供统计信息。利用直方图,可以对一张表的一列数据做分布统计,估算WHERE条件中过滤字段的选择率,从而帮助优化器更准确地估计查询过程中的行数,选择更高效的查询计划。直方图以灵活的JSON的格式存储。会基于表大小自动判断是否要进行取样操作。
2025-02-14 11:19:23
749
原创 【GreatSQL优化器-12】make_tmp_tables_info
GreatSQL的优化器对于聚合函数和窗口函数需要创建内部临时表来进行计算并输出最后结果,这个内部临时表又需要原始表来作为数据输入源,具体的代码处理在函数实现。下面用一个简单的例子来说明是做什么的。"items": [},],},},},},"considering_tmp_tables": [ 这里创建临时表"adding_tmp_table_in_plan_at_position": 2, 临时表总是添加在主表之后},"steps": [
2025-02-12 10:18:42
642
原创 数据迁移丨借助 pg2mysql 从 PostgreSQL 到 GreatSQL
pg2mysql 工具是一款开源工具,由 VMware 公司提供,主要用于将数据从 PostgreSQL 迁移至 MySQL 或 GreatSQL。其核心价值在于数据兼容性检查与迁移功能。在实际迁移操作之前,该工具会仔细检查 MySQL/GreatSQL 的表结构与 PostgreSQL 中相应表结构是否兼容。若检测到诸如字段长度不足之类的潜在问题,它会向用户发出提示,以便用户进行修正。pg2mysql 工具主要是用 Go 语言编写的,遵循 Apache - 2.0 许可证。
2025-01-22 09:51:32
674
原创 数据迁移丨借助 AI 从 PostgreSQL 到 GreatSQL
相对 MySQL 及 Percona Server For MySQL 的性能表现更稳定优异,支持 Rapid 引擎、事务无锁化、并行LOAD DATA、异步删除大表、线程池、非阻塞式DDL、NUMA 亲和调度优化 等特性,在 TPC-C 测试中相对 MySQL 性能提升超过 30%,在 TPC-H 测试中的性能表现是 MySQL 的十几倍甚至上百倍。了解数据库直接交互的应用程序、服务、脚本等,分析这些依赖关系,有助于制定迁移计划,和减少对业务的影响。语句的形式导出数据,而不是默认的自定义格式。
2025-01-20 10:03:29
885
原创 数据迁移丨借助 AI 从 PostgreSQL 到 GreatSQL
相对 MySQL 及 Percona Server For MySQL 的性能表现更稳定优异,支持 Rapid 引擎、事务无锁化、并行LOAD DATA、异步删除大表、线程池、非阻塞式DDL、NUMA 亲和调度优化 等特性,在 TPC-C 测试中相对 MySQL 性能提升超过 30%,在 TPC-H 测试中的性能表现是 MySQL 的十几倍甚至上百倍。了解数据库直接交互的应用程序、服务、脚本等,分析这些依赖关系,有助于制定迁移计划,和减少对业务的影响。语句的形式导出数据,而不是默认的自定义格式。
2025-01-20 10:02:55
961
原创 数据迁移丨借助 AI 从 PostgreSQL 到 GreatSQL
相对 MySQL 及 Percona Server For MySQL 的性能表现更稳定优异,支持 Rapid 引擎、事务无锁化、并行LOAD DATA、异步删除大表、线程池、非阻塞式DDL、NUMA 亲和调度优化 等特性,在 TPC-C 测试中相对 MySQL 性能提升超过 30%,在 TPC-H 测试中的性能表现是 MySQL 的十几倍甚至上百倍。了解数据库直接交互的应用程序、服务、脚本等,分析这些依赖关系,有助于制定迁移计划,和减少对业务的影响。语句的形式导出数据,而不是默认的自定义格式。
2025-01-20 10:01:18
1003
原创 【GreatSQL优化器-11】finalize_table_conditions
GreatSQL的优化器在对join做完表排序后,在函数对表添加条件,添加完条件在会对条件再次进行确认,对ref扫描的条件进行删除,对需要cache的条件进行替换,生成的条件就是表执行查询最后用的条件。下面用一个简单的例子来说明做什么事情。],},},},},"original_table_condition": "(`t2`.`cc1` = `t1`.`c1`)", 原始添加的条件。
2025-01-15 09:44:57
824
原创 【GreatSQL优化器-10】find_best_ref
GreatSQL的优化器对于join的表需要根据行数和cost来确定最后哪张表先执行哪张表后执行,这里面就涉及到预估满足条件的表数据,在keyuse_array数组有值的情况下,会用find_best_ref函数来通过索引进行cost和rows的估计,并且会找出最优的索引。这样就可能不会继续用后面的calculate_scan_cost()进行全表扫描计算cost,可以节省查询时间。这个功能是对之前【优化器05-条件过滤】的补充功能,二者有可能一起用,也有可能只选择一种计算,要看具体条件。
2025-01-10 10:30:21
640
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人