MySQL技术文章
-
通过订单列表慢查询案例,演示如何阅读 EXPLAIN 的 type、key、rows、Extra 字段,并设计联合索引优化 WHERE、ORDER BY 和 LIMIT 分页。159 收藏 -
数据库 · MySQL | 2个月前 | 性能优化 · InnoDB · 故障排查 · MySQL教程 · DBA实战 · mysql innodb 性能优化 预热 冷启动 MySQL 8.4 Buffer Pool
从数据库重启后热点接口 P99 抖动切入,讲清 MySQL 8.x InnoDB Buffer Pool dump/load、冷启动诊断、预热脚本、参数检查和上线演练。158 收藏 -
本文用订单号查询变慢的场景,演示 MySQL 隐式转换如何导致索引无法稳定命中,并给出字段类型统一、参数绑定和上线检查方案。152 收藏 -
MySQL Enterprise Audit 默认全量记录时,审计日志很快会被健康检查和后台账号淹没。本文用 audit_log_filter_set_filter 按事件、用户和查询统计字段收窄范围,并给出安装前提、赋值、回滚与验收方法。145 收藏 -
本文从大促库存扣减的热点行争用出发,分析单行库存模型的锁等待瓶颈,演进到分桶库存、汇总校验和灰度上线方案,并说明取舍与验证指标。141 收藏 -
数据库 · MySQL | 2个月前 | MySQL教程 · 慢查询治理 · 索引优化 · 分区表 · DBA实战 · mysql 分区表 慢查询 索引优化 MySQL 8.4 partition pruning
从订单历史表按月分区的慢查询切入,讲清 MySQL 8.x 分区裁剪的命中条件、失效写法、EXPLAIN PARTITIONS 验证、索引配合和上线检查。133 收藏 -
MySQL数据归档主要有四种方式。1.使用SQL语句手动归档,通过INSERT和DELETE迁移历史数据,适合小规模场景但需注意事务控制、索引影响和备份确认;2.利用事件调度器实现定时自动归档,可设定周期任务并建议配合分区使用以减少性能影响;3.结合时间分区表进行归档,提升查询效率且操作整个分区更高效,但存在分区键设计限制;4.借助第三方工具如pt-archiver或mysqldump,前者支持边归档边删除并控制资源占用,后者适用于低频小规模归档。根据数据量和业务需求选择合适方法,小型项目可用SQL+事件127 收藏 -
数据库 · MySQL | 2个月前 | binlog · 主从复制 · 故障排查 · MySQL教程 · DBA实战 · mysql DBA binlog 主从复制 MySQL 8.4 复制延迟 relay log
从只读库延迟导致读到旧数据的事故切入,讲清 MySQL 8.x 复制延迟如何区分 IO 接收、relay log 应用、大事务、并行复制和只读流量影响。119 收藏 -
数据库 · MySQL | 1个月前 | MySQL · 数据库 · SQL · ON DUPLICATE KEY UPDATE · VALUES · 行别名 · MySQL VALUES() 弃用 ON DUPLICATE KEY UPDATE MySQL 行别名 INSERT AS new MySQL upsert INSERT SELECT
MySQL 已将 ON DUPLICATE KEY UPDATE 中用 VALUES() 读取新行字段的写法标记为弃用。本文从库存快照写入场景出发,给出行别名 AS new 的最小改写、INSERT ... SELECT 的不同处理方式,以及上线前应核对的兼容边界。117 收藏 -
数据库 · MySQL | 1个月前 | MySQL · 磁盘空间 · 故障复盘 · 临时表 · 报表优化 · mysql 临时表 Created_tmp_disk_tables 磁盘打满 报表接口 故障复盘
本文用一次报表接口超时故障复盘说明 MySQL 临时表打满磁盘的排查过程:从影响面、时间线、触发 SQL、根因定位到临时止血和防复发措施。114 收藏 -
从一个唯一索引没有拦住多条 NULL 数据的现场开始,复现 MySQL 唯一索引与 NULL 的行为,再用 NOT NULL、业务默认值和生成列三种方案修复约束边界。109 收藏 -
把订单金额、状态和时间关系交给应用层校验,批处理或旁路写入仍可能留下脏数据。本文用 MySQL 8.4 CHECK 约束建立可落地的边界,演示新增约束前的存量检查、失败写入的错误定位、约束命名和回滚步骤,避免一次结构变更卡住发布。109 收藏 -
数据库 · MySQL | 12小时前 | MySQL · InnoDB · purge · 长事务 · 数据库诊断 · Purge Lag 长事务 InnoDB history list length information_schema.innodb_trx sys.innodb_lock_waits
InnoDB history list length 持续升高,通常不是单纯的写入变快,而是 purge 被长事务或历史读视图拖住。本文从监控现象出发,用 information_schema.innodb_trx、performance_schema 与 sys 视图定位阻塞源,再给出安全结束事务和复查回收速度的步骤。106 收藏 -
MySQL数据备份的关键方法包括:一、使用mysqldump进行逻辑备份,适合中小型数据库,可通过命令实现全量备份并结合压缩节省空间;二、物理备份通过直接复制数据文件实现,速度快但需停机或使用一致性机制;三、利用binlog实现增量备份,支持时间点恢复,建议定期归档日志以减少数据丢失风险;四、合理策略如每日全量+小时binlog归档、周全量+日增量+binlog、主从复制+定时备份等,同时必须定期验证备份可恢复性。105 收藏 -
数据库 · MySQL | 2个月前 | InnoDB · MySQL教程 · 数据库实战 · 死锁排查 · 锁等待 · mysql innodb 死锁 事务 锁等待 MySQL 8 data_locks
从转账事务死锁复现出发,讲清 MySQL 8.x InnoDB 行锁、间隙锁、data_locks、data_lock_waits、SHOW ENGINE INNODB STATUS、事务顺序和重试策略。105 收藏