中间件与数据库:MySQL
破解gh-ost变更导致MySQL表膨胀之谜
MySQL DDL变更后,表存储空间膨胀近100%,统计信息偏差严重,部分SQL出现慢查。根因在于变更工具机制与单行记录过大叠加,导致页分裂异常,一个页仅存一条记录,浪费空间。统计信息因页内唯一值减1操作而失真,进而影响SQL优化器决策。解决方案包括临时执行原生DDL语句重整表空间,长期则需调整变更流程,避免全量与增量数据交叉并行执行。
MySQL单表为何别超2000万行?揭秘B+树与16KB页的生死博弈
MySQL单表数据量建议不超过2000万,主要基于B+树索引结构。B+树通过16KB数据页组织数据,非叶子节点存储主键和页指针,叶子节点存储实际数据。三层B+树可支持约2500万行数据,查询最多3次磁盘IO,性能高效。单表行数受主键大小、行数据大小和磁盘限制,合理控制单行大小和索引设计可优化性能。B+树的高扇出特性使其比B树更适合作为MySQL索引。
MySQL 更新消失案
在MySQL事务中,更新后偶发读取到旧值,原因在于并发事务更新相同记录且值未变。MySQL跳过更新,未更新DB_TRX_ID,导致快照读时返回历史数据。解决方案包括加锁、填充更新内容或使用乐观锁。通过源码分析和场景复现,揭示了这一现象的内在机制。
小红书自研Binlog Server守护MySQL数据0丢失
小红书数据库团队推出基于Binlog Server的数据一致性解决方案,通过提升半同步复制性能,加速日志传输,实现故障时自动补数据,保证数据一致性。该方案使用极少的资源(1C1G)即可将复制速度提升至300MB/s+,优化了故障切换效率,降低运维成本和业务风险,实现数据库快速恢复。目前该方案已100%部署于小红书半同步复制集群。
爱奇艺积分系统架构演进:从 MySQL 到 MongoDB 的统一存储实践
爱奇艺积分系统完成重磅升级!原MySQL+MongoDB的双存储架构存在性能瓶颈和一致性问题,技术团队将数据统一迁移至MongoDB 7.0,通过分片集群实现水平扩展,支持高并发写入。改造后的系统稳定性显著提升,接口超时减少,数据强一致性得到保障,同时简化了开发维护成本,为亿级用户积分业务打下坚实基础。
为什么 MySQL 表中无数据,ibd 文件却很大?
在生产环境中,发现MySQL表占用大量磁盘空间,但表数据为空。经分析,应用侧每天凌晨使用insert into .. select * from xx
进行数据备份,由于max_binlog_cache_size
参数限制,事务回滚导致表空间未释放。临时解决方法是调大该参数,长期建议将新数据写入以日命名的新表,减少数据库压力。合理配置系统参数,避免大事务使用,确保数据库高效运行。
MySQL-PolarDB数据优雅迁移
PolarDB凭借云原生架构和MySQL语法兼容性,成为数据迁移的理想选择。为减少迁移对用户的影响,需探索不停机方案。通过DTS服务实现数据迁移,结合DB-Switch快速切换数据源,并引入“蓄水池”确保数据不丢失。工程实践中,切换过程仅需20-300ms,用户几乎无感。
MySQL大事务提交优化
大事务提交时,由于Binlog Events写入需串行执行,导致小事务在提交阶段等待,影响性能。AliSQL和MariaDB-11.7通过优化,将Binlog Cache文件直接转为Binlog文件,消除额外IO,解决大事务提交延迟问题,提升系统稳定性。
MySQL内存问题分析利器--Jemalloc
MySQL内存问题排查常依赖PFS,但PFS粒度粗且影响性能。Jemalloc作为高效内存分配器,通过采样记录内存分配和释放,提供精准内存监控。支持内存快照生成和图形化展示,便于分析内存泄漏和使用情况。通过案例展示了Jemalloc在MySQL内存问题诊断中的强大能力,并介绍了如何配置和使用Jemalloc进行内存分析。
MySQL 内存使用构成解析与优化实践
MySQL内存使用率高常引发用户担忧,但多数情况并非内存泄漏,而是由于其缓存机制如Buffer Pool的预分配和连接缓存所致。排查时可关注连接数、慢查询和业务压力。平台优化方面,采用jemalloc内存分配器有效降低了内存碎片和提升了回收效率,使内存使用更加合理。建议用户优化查询和控制连接数,同时定期评估数据库资源需求。
告别人工搬运!TiDB/MySQL双库同步工具如何为业务提效100%?
测试过程中因配置不一致导致效率低下,常见问题包括订单主体错误、OA审批模板配置复杂、数据同步影响数据库性能等。为解决这些问题,探索了定时同步、自动同步和手动同步三种方案。最终采用自动与手动结合的方式,实现了MySQL和TiDB双库的实时同步,显著提升了工作效率和配置准确性,日均同步数据量达50W-150W,失败率极低。
MySQL At Uber
Uber的MySQL数据库系统是其数据基础设施的核心,管理着2300多个独立集群,确保高可用性和数据无丢失。通过控制平面的重新设计,实现了从99.9%到99.99%的可用性提升。关键功能包括集群管理、主节点故障切换、节点生命周期管理和数据库操作。自动化流程如节点替换和架构变更,确保了系统的灵活性和稳定性。使用Cadence驱动的工作流提升了操作效率,提供了可靠的MySQL平台支持Uber的多种服务需求。
MySQL索引学习笔记
深入探讨MySQL慢查询分析的关键技术,重点在于优化查询的响应时间、扫描行数和返回行数。通过示例展示索引在查询中的重要性,特别是全表扫描和索引覆盖扫描的对比。介绍聚簇索引及覆盖索引的概念,强调索引列顺序和最左前缀法则对查询优化的影响,并详述文件排序的使用条件及影响。
小红书MySQL数据一致性校验能力探索与实践
数据一致性校验如何在小红书实践并落地。
基础设施即代码初探-开发Terraform Provider管理私有云MySQL实例
基础设施即代码(Infrastructure as Code, IaC)已经成为云时代DevOps实践中不可或缺的一环。通过代码来管理和配置基础设施,我们可以像开发软件一样,用工程化的方法来对待基础设施。在IaC领域,Terraform无疑是最流行的工具之一。
MySQL核心揭秘:从查询到修改,彻底理解 Undo Log、Redo Log、Binlog 与 ACID 的关系
本文将带您深入探讨MySQL中Undo Log、Redo Log和Binlog的核心机制,全面解析它们如何协同工作以保障事务的ACID特性。从查询优化到数据修改,我们将揭示这些日志在实际应用中的具体实现方式和作用机制,帮助您全面掌握MySQL事务管理的内部原理,提升数据库设计和运维的能力。