实测GreatSQL 8.4.4-5新特性:大事务binlog独立落盘

SpringBoot+Vue+MySQL 高校学科竞赛平台 完整可运行版(源码+文档) 本项目基于SpringBoot+Vue+MySQL构建高校学科竞赛管理平台,覆盖学生、教师、领队教师、管理员四大角色,实现竞赛发布、报名、刷题、评分、公示等全流程闭环管理。系统架构清晰,技术主流,配套完整源码、数据库脚本、万字论文、开题报告、答辩PPT及部署文档,支持一键运行,适用于毕业设计、课程设计及院系二次开发,真正实现“开箱即用”。 阅读详情

业务痛点

在以前,使用 MySQL 处理大事务时,一般会出现数据库整体性能卡顿问题:单个大事务提交会引发全库 TPS 剧烈抖动,普通事务提交被大事务阻塞,磁盘 I/O 负载急剧增高,高并发业务场景下该现象尤为严重。 根源在于原生 binlog 提交流程存在固有缺陷:

  1. 大事务产生的binlog数据先写入 binlog cache 由于溢出内存写入临时文件,提交阶段需要重新读取 cache 内容,再写入正式 binlog 文件,产生双倍磁盘写入,造成严重写放大、I/O 资源浪费;
  2. 二次读写流程执行周期长,会长期持有全局 binlog 锁,阻塞其他所有事务提交;
  3. I/O 阻塞 + 锁竞争叠加,导致数据库吞吐量剧烈波动,业务响应延迟。

GreatSQL解决方案:大事务 binlog 独立落盘

GreatSQL 8.4.4-5 推出大事务 binlog 独立落盘优化特性,彻底消除原生 binlog 二次读写带来的性能损耗。

核心优化思路

优化传统「binlog cache溢出落盘→ binlog cache 读取 → 写入 binlog 文件」流程,预构建完整结构的 binlog cache 临时文件,事务满足阈值后直接将 cache 文件重命名为正式 binlog 文件,消除二次写 I/O,大幅缩短事务提交时间。

底层关键改造
  1. 可重构 Cache 文件结构 写入 binlog cache 时提前预留文件头、描述事件、GTID 相关事件、对齐填充位等标准 binlog 必备结构,cache 文件天然符合正式 binlog 文件格式,无需二次加工改写。
  2. 文件直接 Rename 落盘机制 当事务达到阈值,先结束当前正在写入的 binlog 文件,向 cache 预留空间补全头部事件,通过文件重命名操作直接将 cache 临时文件转为正式 binlog,省去数据复制写入动作。
特性预期收益
  1. 大事务提交延迟降低 30%~70%;
  2. 高并发混合事务场景整体 TPS 提升 10%~40%;
  3. 消除 binlog 写放大,磁盘 I/O 显著下降,消除大事务对业务 TPS 冲击问题。

使用方法

GreatSQL增加了系统变量:binlog_large_commit_threshold

  • 变量类型:无符号长整型(ulonglong),取值范围 10485760 ~ 18446744073709551615
  • 默认值:128MB
  • 作用逻辑:当单个事务 binlog 数据大小达到该阈值,自动启用大事务 binlog 独立落盘优化逻辑。

实测binlog独立落盘

binlog独立落盘

系统变量binlog_large_commit_threshold设置了binlog独立落盘的阈值,binlog大小超过此值,GreatSQL会将该事务的binlog独立落盘。

-- binlog_large_commit_threshold的默认值是128M
greatsql> SHOW VARIABLES LIKE 'binlog_large_commit_threshold';
+-------------------------------+-----------+
| Variable_name                 | Value     |
+-------------------------------+-----------+
| binlog_large_commit_threshold | 134217728 |
+-------------------------------+-----------+
1 row in set (0.01 sec)

执行一个超过128M的大事务

-- 检查binlog信息,最新binlog是binlog.000003
greatsql> SHOW BINARY LOGS;
+---------------+-----------+-----------+
| Log_name      | File_size | Encrypted |
+---------------+-----------+-----------+
| binlog.000001 |  19082048 | No        |
| binlog.000002 | 190815557 | No        |
| binlog.000003 |       158 | No        |
+---------------+-----------+-----------+
3 rows in set (0.00 sec)

-- 执行一个大事务
greatsql>INSERT INTO test2 SELECT * FROM test1;
Query OK, 1000000 rows affected (25.41 sec)
Records: 1000000  Duplicates: 0  Warnings: 0

-- 检查binglog,发现事务未写入binlog.000003,而是写入了binlog.000004
greatsql> SHOW BINARY LOGS;
+---------------+-----------+-----------+
| Log_name      | File_size | Encrypted |
+---------------+-----------+-----------+
| binlog.000001 |  19082048 | No        |
| binlog.000002 | 190815557 | No        |
| binlog.000003 |       391 | No        |
| binlog.000004 | 190725193 | No        |
+---------------+-----------+-----------+
4 rows in set (0.00 sec)

对比大事务对TPS的影响

执行大事务,不使用binlog独立落盘
-- 设置binlog独立落盘的阈值1G
greatsql> SET GLOBAL binlog_large_commit_threshold=1024*1024*1024;
Query OK, 0 rows affected (0.00 sec)

greatsql> SHOW BINARY LOGS;
+---------------+-----------+-----------+
| Log_name      | File_size | Encrypted |
+---------------+-----------+-----------+
| binlog.000001 |  19082048 | No        |
| binlog.000002 | 190815557 | No        |
| binlog.000003 |       391 | No        |
| binlog.000004 | 190725403 | No        |
| binlog.000005 | 443557932 | No        |
+---------------+-----------+-----------+
5 rows in set (0.00 sec)

greatsql> TRUNCATE TABLE test2;
Query OK, 0 rows affected (0.05 sec)

-- 执行大事务,但该事务小于binlog_large_commit_threshold(1G)
greatsql> SELECT now();INSERT INTO test2 SELECT * FROM test1;select now();
+---------------------+
| now()               |
+---------------------+
| 2026-08-13 12:18:26 |
+---------------------+
1 row in set (0.00 sec)

Query OK, 1000000 rows affected (30.22 sec)
Records: 1000000  Duplicates: 0  Warnings: 0

+---------------------+
| now()               |
+---------------------+
| 2026-08-13 12:18:56 |
+---------------------+
1 row in set (0.00 sec)

-- 事务没有独立落盘,写到了binlog.000005 
greatsql> SHOW BINARY LOGS;
+---------------+-----------+-----------+
| Log_name      | File_size | Encrypted |
+---------------+-----------+-----------+
| binlog.000001 |  19082048 | No        |
| binlog.000002 | 190815557 | No        |
| binlog.000003 |       391 | No        |
| binlog.000004 | 190725403 | No        |
| binlog.000005 | 659791246 | No        |
+---------------+-----------+-----------+
5 rows in set (0.00 sec)

对sysbench测试TPS的影响

2026-08-13 12:18:53 [ 33s ] thds: 10 tps: 480.99 qps: 9606.80 (r/w/o: 6725.86/1918.96/961.98) lat (ms,95%): 19.65 err/s: 0.00 reconn/s: 0.00
2026-08-13 12:18:54 [ 34s ] thds: 10 tps: 462.02 qps: 9243.42 (r/w/o: 6470.29/1849.08/924.04) lat (ms,95%): 17.63 err/s: 0.00 reconn/s: 0.00
2026-08-13 12:18:55 [ 35s ] thds: 10 tps: 471.95 qps: 9486.03 (r/w/o: 6648.32/1893.81/943.90) lat (ms,95%): 18.95 err/s: 0.00 reconn/s: 0.00
2026-08-13 12:18:56 [ 36s ] thds: 10 tps: 135.01 qps: 2640.23 (r/w/o: 1840.16/530.05/270.02) lat (ms,95%): 861.95 err/s: 0.00 reconn/s: 0.00
2026-08-13 12:18:57 [ 37s ] thds: 10 tps: 791.87 qps: 15849.30 (r/w/o: 11098.10/3167.47/1583.73) lat (ms,95%): 17.01 err/s: 0.00 reconn/s: 0.00
2026-08-13 12:18:58 [ 38s ] thds: 10 tps: 507.26 qps: 10140.24 (r/w/o: 7094.66/2032.06/1013.52) lat (ms,95%): 17.32 err/s: 0.00 reconn/s: 0.00
2026-08-13 12:18:59 [ 39s ] thds: 10 tps: 499.13 qps: 9991.69 (r/w/o: 7002.88/1989.53/999.27) lat (ms,95%): 16.41 err/s: 0.00 reconn/s: 0.00
2026-08-13 12:19:00 [ 40s ] thds: 10 tps: 468.96 qps: 9385.18 (r/w/o: 6562.43/1884.84/937.92) lat (ms,95%): 17.63 err/s: 0.00 reconn/s: 0.00

在事务完成的时间点(2026-08-13 12:18:56),TPS被明显拉低,由约470降低到135,降低约70% 。

执行大事务,使用binlog独立落盘
-- 设置binlog独立落盘的阈值10M
greatsql> SET GLOBAL binlog_large_commit_threshold=10*1024*1024;
Query OK, 0 rows affected (0.00 sec)


greatsql> SHOW BINARY LOGS;
+---------------+-----------+-----------+
| Log_name      | File_size | Encrypted |
+---------------+-----------+-----------+
| binlog.000001 |  19082048 | No        |
| binlog.000002 | 190815557 | No        |
| binlog.000003 |       391 | No        |
| binlog.000004 | 190725403 | No        |
| binlog.000005 | 659791246 | No        |
+---------------+-----------+-----------+
5 rows in set (0.00 sec)

greatsql> TRUNCATE TABLE test2;
Query OK, 0 rows affected (0.03 sec)

-- 执行一个大事务(约198M)
greatsql> SELECT now();INSERT INTO test2 SELECT * FROM test1;select now();
+---------------------+
| now()               |
+---------------------+
| 2026-08-13 12:21:53 |
+---------------------+
1 row in set (0.00 sec)

Query OK, 1000000 rows affected (27.34 sec)
Records: 1000000  Duplicates: 0  Warnings: 0

+---------------------+
| now()               |
+---------------------+
| 2026-08-13 12:22:20 |
+---------------------+
1 row in set (0.00 sec)

-- 大事务没有写入binlog.000005,写到了binlog.000006 
greatsql> SHOW BINARY LOGS;
+---------------+-----------+-----------+
| Log_name      | File_size | Encrypted |
+---------------+-----------+-----------+
| binlog.000001 |  19082048 | No        |
| binlog.000002 | 190815557 | No        |
| binlog.000003 |       391 | No        |
| binlog.000004 | 190725403 | No        |
| binlog.000005 | 676207441 | No        |
| binlog.000006 | 208456762 | No        |
+---------------+-----------+-----------+
6 rows in set (0.01 sec)

对sysbench测试TPS的影响

2026-08-13 12:22:16 [ 34s ] thds: 10 tps: 450.49 qps: 9003.74 (r/w/o: 6297.80/1804.96/900.98) lat (ms,95%): 18.61 err/s: 0.00 reconn/s: 0.00
2026-08-13 12:22:17 [ 35s ] thds: 10 tps: 449.98 qps: 9022.58 (r/w/o: 6323.70/1799.92/898.96) lat (ms,95%): 17.63 err/s: 0.00 reconn/s: 0.00
2026-08-13 12:22:18 [ 36s ] thds: 10 tps: 434.03 qps: 8658.63 (r/w/o: 6056.44/1733.13/869.06) lat (ms,95%): 17.32 err/s: 0.00 reconn/s: 0.00
2026-08-13 12:22:19 [ 37s ] thds: 10 tps: 469.99 qps: 9391.79 (r/w/o: 6572.85/1878.96/939.98) lat (ms,95%): 18.95 err/s: 0.00 reconn/s: 0.00
2026-08-13 12:22:20 [ 38s ] thds: 10 tps: 500.00 qps: 10004.97 (r/w/o: 7005.98/1999.99/999.00) lat (ms,95%): 15.55 err/s: 0.00 reconn/s: 0.00
2026-08-13 12:22:21 [ 39s ] thds: 10 tps: 429.71 qps: 8572.31 (r/w/o: 5993.04/1718.85/860.42) lat (ms,95%): 31.94 err/s: 0.00 reconn/s: 0.00
2026-08-13 12:22:22 [ 40s ] thds: 10 tps: 434.91 qps: 8712.29 (r/w/o: 6104.82/1738.65/868.82) lat (ms,95%): 26.68 err/s: 0.00 reconn/s: 0.00
2026-08-13 12:22:23 [ 41s ] thds: 10 tps: 456.40 qps: 9096.05 (r/w/o: 6354.62/1828.62/912.81) lat (ms,95%): 23.52 err/s: 0.00 reconn/s: 0.00
2026-08-13 12:22:24 [ 42s ] thds: 10 tps: 361.98 qps: 7255.68 (r/w/o: 5082.77/1447.94/724.97) lat (ms,95%): 30.81 err/s: 0.00 reconn/s: 0.00
2026-08-13 12:22:25 [ 43s ] thds: 10 tps: 425.99 qps: 8562.86 (r/w/o: 5996.91/1713.97/851.99) lat (ms,95%): 29.19 err/s: 0.00 reconn/s: 0.00

在事务完成时间点(2026-08-13 12:22:20),TPS没有降低,大事务对TPS的冲击消失。

测试总结

经对比测试验证,GreatSQL 大事务 binlog 独立落盘特性效果显著。该特性通过文件结构预构建与文件直接 rename 落盘的优化方式,彻底消除 binlog 二次写入带来的IO写放大问题,大幅减少大事务提交对全局事务的阻塞影响,有效规避了大事务提交引发的吞吐量波动,彻底消除大事务对业务整体TPS稳定性的冲击,确保数据库高并发TP业务场景的平稳运行。

SpringBoot+Vue+MySQL 民宿在线预定平台 完整可运行版(源码+文档) 本文介绍一套基于SpringBoot+Vue+MySQL的民宿在线预订平台,涵盖用户与管理员双角色全流程功能,实现房源展示、订单管理、支付模拟、数据看板等闭环业务。系统架构清晰,前后端分离,附带完整源码、数据库脚本、万字论文、答辩PPT及部署文档,适合毕设、课程设计或小型民宿二次开发,开箱即用,快速落地。 阅读详情

相关推荐

Rokid眼镜高精度图像识别的五大工程破局点

图像识别是AR交互的基础能力,其核心在于将现实图像映射为可计算的数字特征,并通过几何建模解算空间姿态。在专用AR眼镜场景中,该过程面临光学畸变、传感器时序错位、低延迟跟踪与人因适配等复合挑战。尤其在工业现场,Rokid Max系列的鱼眼镜头畸变、IMU-视觉异步采样、窄FOV下快速眼动等物理约束,使传统基于AR Foundation或OpenCV的识别方案失效。本文聚焦真实部署中的关键瓶颈,涵盖实时反畸变纹理渲染、原生SDK直调优化、端侧轻量CNN模型(TinyImageNet-Rokid)、IMU-视觉紧

weixin_33681778的博客 697

GreatSQL 8.4.4-5 GA(2026-06-30)

GreatSQL 8.4.4-5 版本正式发布!本版本在高可用、高性能、高兼容、高安全四大维度全面升级,新增大事务binlog独立落盘、并行复制回放优化、向量数据类型及相似度查询等重磅特性,同时恢复旧版主从复制语法兼容,大幅降低运 维升级成本。

GreatSQL2021的博客 890

UltraScale+ FPGA中GTY收发器参考时钟的跨Bank共享机制解析

本文深入解析了UltraScale+ FPGA中GTY收发器参考时钟的跨Bank共享机制,详细介绍了时钟布线架构、SLR区域限制及Vivado工程配置要点。通过实际案例和优化建议,帮助工程师解决高速串行通信中的时钟共享问题,提升系统性能。

weixin_29280219的博客 632

myloader导入更快吗?并没有......

前几天我用MySQL官网提供的airportdb库中的weatherdata表做测试,结论是相比原生快了约5倍。群里有小伙伴反驳说用myloader更香,于是就有了本次测试。

GreatSQL2021的博客 478

卷积神经网络-猫狗识别(附源码)

利用python实现一个卷积神经网络,训练猫狗数据集,实现对猫狗图片的预测识别

m0_63223213的博客 2万+

手把手教你用NetToPLCsim搭建西门子S7-1200仿真环境(附避坑指南)

本文详细指导如何利用NetToPLCsim与PLCSIM搭建西门子S7-1200仿真环境,实现无硬件条件下的PLC程序测试与上位机通信开发。内容涵盖软件选型、环境部署、关键参数配置及通信测试,并重点提供了连接失败、数据读写错误等常见问题的深度避坑指南,帮助工程师高效构建可靠的虚拟调试工作流。

a3b4c5的博客 614

myloader导入更快吗?并没有。。。

0. 结论先行1. 背景介绍2. 测试过程3. 结果对比附录myloader还默认禁用binlog了0. 结论先行重要结论先说:导入大批量数据时,采用GreatSQL 8.0.32-24中新增并行load data特性是最快的,关于该特性的描述详见:Changes in GreatSQL 8.0.32-24。1. 背景介绍前几天我用MySQL官网提供的airportdb库中的weatherdata...

老叶茶馆 448

【异常】OpenClaw 项目 `fetch failed` 报错问题排查与解决方案Response interrupted: TypeError: fetch failed

针对无超时控制、异常兜底缺失导致的请求中断,封装标准化的安全请求工具,一次性解决超时控制、异常捕获、日志埋点三大问题,全项目替换原生。:将项目运行的 Node.js 版本升级至 18.x 及以上 LTS 版本,使用 Node.js 内置的稳定版。实现的网络请求环节,包括但不限于:第三方开放接口调用、内部服务接口通信、跨域资源请求、外部配置拉取等场景。:针对无法升级 Node.js 版本的存量环境,通过社区稳定兼容包替换原生。类型异常,直接造成业务请求响应中断。第二步:业务代码改造,替换原生。

奶爸的编程之路,也就一周冷个三天 367

自打有了GIPKs,DBA和开发再也不用battle了

从MySQL 8.0.30开始,新引入一个叫做GPIKs的特性,其全称是,简言之就是自动生成隐含的主键列,更完整的说法是:启用GIPKs后,当新建的InnoDB表没有显式主键时,会自动创建一个不可见的主键列my_row_id,这个列会被定义为,并且是不可见的(INVISIBLE。

GreatSQL2021的博客 245

总结一下:电源设计 ≠ 画个电路图就完了

如果你面对一块电源板时,只知道输入输出是多少伏,那你离真正懂它还差十万八千里。你要懂拓扑、理解工作原理、看懂波形、会分析环路、熟练选型,还得懂调试、EMC和热设计——才能自信地说:“我会搞电源了。电源不是一个人能独挑的“电”,而是控制、模拟、热、EMC 多学科交融的“多面体”。这也是为什么它既复杂又迷人✨。

weixin_43199439的博客 144

PostgreSQL 核心原理:大字段(大对象)是如何被压缩和存储的(TOAST存储机制)

PostgreSQL通过TOAST机制高效处理大字段存储问题,解决单行超过8KB页大小限制的挑战。TOAST采用透明分片、按需加载和自动压缩策略,支持TEXT、JSONB等变长类型,无需用户干预。其核心包括四种存储策略(plain/external/main/extended),自动将大字段分片存入专用TOAST表,主表仅保留指针。读取时按需解压拼接,支持部分加载优化。TOAST表结构包含chunk_id、序列号和分片数据,配合内置PGLZ压缩算法,平衡存储效率与访问性能。该机制使PostgreSQL能稳定

数据知道的博客 2626

MySQL 索引深入理解:B+ 树、二级索引、联合索引与查询优化

理解二级索引后,就可以理解回表了。SELECT *MySQL 的执行过程分为三个步骤。覆盖索引(Covering Index)并不是一种独立的索引类型,而是一种查询效果。SQL 查询需要的所有字段,都能够直接从某个索引中获得,不需要再访问聚簇索引获取其他字段。例如:因为user_id已经包含在二级索引中,所以 MySQL 可以直接返回结果。不需要回表。联合索引(Composite Index)是同时使用多个字段建立的索引。它的排序规则是:首先按照user_id排序。当user_id。

m0_64642997的博客 135

21、汽车喷漆目标区域识别:机器学习与深度学习的应用

本文探讨了机器学习与深度学习在汽车喷漆目标区域识别中的应用,重点利用卷积神经网络(CNN)提高喷漆效率并减少油漆浪费。通过构建和预处理包含多种汽车类型的数据集,采用ResNet-18、ResNet-50和MobileNet-v2等模型进行训练与评估,结果表明ResNet-50在准确率和鲁棒性方面表现最佳。研究还分析了数据裁剪、标签处理、网络架构差异以及光照和遮挡对识别效果的影响,并提出了系统实现流程。最后,文章展望了多传感器融合、模型优化和场景适应性等未来研究方向,为智能化喷漆工艺提供了技术参考。

5b6n7m8的博客 102

MySQL 单点详解(14)

给定一条 SQL,联合索引的列该怎么排呢?

2401_88601046的博客 345

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

MySQL 的 REPEATABLE READ 到底能不能防幻读——从快照读、当前读到 Next-Key Lock

本文系统讲解 InnoDB 可重复读级别下的幻读问题:从三类读异常切入,剖析快照读依赖 MVCC、当前读依赖 Next-Key Lock 的双防线机制,用双会话实验复现幻读仍会出现的边界场景,并解释各数据库在幻读防护上行为分歧的根源。

大模型全栈工程师 · Thanks_ks 297

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Flink SQL 连接器实战:MySQL Source、Flink CDC 与 JDBC Sink 全解析

提供有界流读取,适合批处理和维表场景,简单直接但无法感知变更。MySQL CDC提供无界流读取,通过「全量快照 + binlog 增量」的方式实现实时捕获,是实时数仓的核心入口,但需要 MySQL 侧正确配置 binlog 和权限。JDBC Sink负责结果回写,关键在于区分仅插入流和更新流,更新流必须依赖主键完成 upsert。掌握这三者的差异,本质上就是掌握了 Flink 中「有界与无界」「追加与更新」这两组最基本的语义。

2401_83857914的博客 455

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

MySQL 中 DISTINCT 与 GROUP BY 哪个效率更高?

DISTINCT与GROUP BY在纯去重场景下,MySQL 8.0 中执行计划通常一致,效率基本相同。老版本(8.0.13 之前)GROUP BY有隐式排序开销,DISTINCT往往更快。需要聚合或HAVING时,只能用GROUP BY。效率的真正决定因素是索引和执行计划,而不是这两个关键字本身。所以,与其问「哪个更快」,不如问「我的查询有没有走对索引」。

2601_96709915的博客 326

基于 FastAPI+LangChain+LangGraph+Agent+Vue3+MySQL 的房产数据采集与房价预测分析平台

本文介绍一个完整的「房产数据采集+AI房价预测」全栈项目,涵盖FastAPI异步后端、LangGraph Agent智能问答、爬虫采集、机器学习预测与Vue3前端,实现从数据采集到AI交互的闭环。项目融合多技术栈,具备真实业务场景与生产级设计(如降级策略、流式输出、多模型对比),兼具简历亮点与答辩演示优势,可系统性提升工程能力,并附高频面试题解析,是理想的技术综合实践项目。

深耕开发,专注编程实战。分享源码解析、项目搭建、问题排查笔记,沉淀技术,持续更新。 231

MySQL 8.0 双向主从复制故障修复与重建指南

MySQL 8.0 双向主从复制故障修复 SOP:XtraBackup 重建备用节点,解决 GTID 1236 / 历史日志冲突

「YYL DBA手记」 数据库 · 架构 · 运维 · 实战 yyldba.blog.youkuaiyun.com 298

MySQL 8.0停服了,信创替代的窗口正在关闭

最近跟几个做信创的朋友聊天,发现一个被忽略的问题。MySQL 8.0在今年4月正式停了官方支持,Oracle不再出安全补丁,bug也没人修了。但大量企业的业务系统还跑在上面。这事搁以前不算急,慢慢选就行了。但现在不行了,国资委79号文写得很清楚,2027年底前央国企核心系统得完成国产化替换。MySQL停服跟信创deadline撞在一起,留给MySQL用户做决定的时间不多了。我做过不少数据库迁移项目,MySQL替代这个事,坑比大多数人想的要多。今天聊几个我觉得最容易被忽视的点。

databasedb的博客 333

MySQL:库与表的操作

本文系统讲解MySQL库的操作,涵盖创建、查看、修改、删除数据库及字符集、校验规则的配置与影响。重点说明CREATE DATABASE语法、字符集(如utf8mb4)与校验规则(如utf8_general_ci vs utf8_bin)对大小写敏感性和排序的影响。通过实例演示不同校验规则下查询与排序结果差异。同时介绍SHOW DATABASES、USE、ALTER DATABASE、DROP DATABASE等操作,并强调备份恢复(mysqldump)与连接状态监控(SHOW PROCESSLIST)的重要

2401_87306079的博客 325

MySQL 主从复制进阶(2026):GTID、复制延迟排查与故障切换

load 高到底是 CPU 还是 IO?free 的 available 才是关键。us/sy/wa 决策树 + iostat/sar/iftop 实战,CPU/内存/磁盘/网络四大瓶颈定位方法论。

2502_91473995的博客 182

Linux、Shell、MySQL 测试卷逐题细讲(下篇:MySQL)

本文为Linux、Shell、MySQL测试卷下半段MySQL部分逐题讲解,包含填空、选择与SQL分析三类题型。填空题覆盖COUNT、HAVING、DISTINCT、事务、约束、索引等核心语法;选择题辨析存储过程、索引类型、ACID、存储引擎、用户管理等考点。SQL大题围绕员工、部门、职位、地点四张关联表,考察多表连接、分组聚合、自连接、相关子查询、NULL处理等高频写法,标注LEFT JOIN统计计数、NULL判断、子查询别名等易错坑点,同时梳理试卷OCR识别带来的干扰问题,重点提示SQL实操中的常见失误

dongziwen1的博客 185

任务4-1 了解MySQL的数据类型

本文梳理了MySQL数据类型:数值型涵盖整型与实型,金额首选DECIMAL;字符串型按长度与用途分为CHAR、VARCHAR、TEXT及BLOB;日期型包含DATE、TIME、DATETIME及TIMESTAMP;特殊类型有ENUM、JSON等。掌握类型特性是高效建表的基础。

howard2005的专栏 147

MySQL 为什么选择 B+ 树作为索引结构

B 树和 B+ 树都是多路平衡树,但 B+ 树在数据库场景下更有优势,主要体现在以下几个方面。对比对象主要问题B+ 树的优势二叉树 / 红黑树树高过大,I/O 次数多多路平衡,树高仅 3~4 层哈希表不支持范围查询、排序天然有序,支持范围与排序B 树节点存数据,扇出小;查询路径不一致非叶子只存键,扇出大;查询路径稳定B+ 树用更矮的树高减少磁盘 I/O,用有序的叶子链表支撑范围查询,用只存键的非叶子节点换取更大的扇出,是磁盘数据库索引场景下综合表现最优的选择。

2601_96129122的博客 319

mysql初阶--数据库设计

本文系统阐述数据库设计的核心方法论,从范式理论(1NF、2NF、3NF)出发,揭示数据冗余与操作异常的根源,强调3NF为工程实践的最优平衡点。通过E-R图构建实体关系模型,实现从业务需求到表结构的清晰映射。文章厘清类、实体、表三者对应关系,提出“抽象→建模→落地”的设计流程,帮助开发者建立可复用的数据库设计思维框架,避免“拍脑袋”建表的陷阱。

2601_97033068的博客 704
上一篇: gt-checksum v4.0.2 来了,换个校验引擎,效率起飞
下一篇: 少敲一个字母,GreatSQL 对所有查询“已读不回”
GreatSQL社区
博客等级 码龄5年 1210粉丝 390原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值