MySQL技术文章
-
数据库 · MySQL | 2星期前 | 性能优化 · 执行计划 · MySQL教程 · 慢查询治理 · 数据库运维 · mysql GROUP BY优化 TempTable 内部临时表 Created_tmp_disk_tables
从 MySQL 8.4 内部临时表和 TempTable 入手,讲清 GROUP BY、ORDER BY、DISTINCT 落盘诊断、SQL 改写、索引策略和参数兜底。267 收藏 -
本文用订单表归档为例,讲清 MySQL 历史数据如何按时间窗口分批搬迁:先确定归档边界,再批量写入归档表,校验数量和金额,最后小批量清理热表,降低锁等待和慢查询风险。261 收藏 -
数据库 · MySQL | 2星期前 | 性能优化 · 高并发 · InnoDB · MySQL教程 · 数据库运维 · mysql innodb AUTO_INCREMENT 高并发写入 innodb_autoinc_lock_mode
从 MySQL 8.4 AUTO_INCREMENT 锁模式入手,讲清高并发 INSERT、批量导入、复制格式和上线回滚检查。254 收藏 -
数据库 · MySQL | 1星期前 | MySQL · 数据库 · 联合索引 · ORDER BY · 慢查询排查 · mysql order by explain 慢查询 联合索引 filesort
本文从列表接口排序变慢的现场开始,带你用 EXPLAIN 看执行计划,定位 ORDER BY 触发 filesort 的原因,再按筛选字段和排序字段设计联合索引,最后通过 rows、Extra 和耗时变化验证优化效果。203 收藏 -
从 MySQL 8.4 Skip Scan 入手,讲清复合索引没有左前缀条件时优化器为什么仍可能走索引,以及如何用 EXPLAIN ANALYZE 和 optimizer_switch 做生产验证。189 收藏 -
选择合适的MySQL数据类型能节省存储空间、提升查询性能并确保数据准确性。常见的数据类型分为数值型(如INT、DECIMAL)、字符串型(如CHAR、VARCHAR)和日期时间型(如DATE、DATETIME、TIMESTAMP)。选择时应遵循几个关键点:1.节省存储空间,如状态字段用TINYINT;2.提高查询效率,优先使用定长类型;3.避免精度丢失,金额字段用DECIMAL;4.注意默认行为差异,如TIMESTAMP自动处理时区。常见场景推荐:用户ID用INTUNSIGNED或BIGINT,用户名用V187 收藏 -
数据库 · MySQL | 3星期前 | 性能优化 · 执行计划 · 生产实践 · MySQL教程 · 索引优化 · mysql explain 索引优化 Index Condition Pushdown ICP
从 MySQL 8.4 Index Condition Pushdown 入手,讲清为什么用了索引仍可能回表拖慢,以及如何用 EXPLAIN、optimizer_switch 和线上指标验证 ICP 收益。179 收藏 -
MySQL存储引擎是管理数据存储与检索的底层组件,决定数据保存、索引、事务处理方式。InnoDB为默认引擎,支持事务、行级锁和外键,适用于高并发场景;MyISAM不支持事务,但读取性能好,适合查询为主的应用;MEMORY引擎将数据存于内存,适合临时缓存;CSV用于文本数据交互。不同引擎在事务支持、锁机制、索引类型和崩溃恢复等方面特性各异,通过SHOWENGINES;可查看支持的引擎。选择应基于业务需求,如事务需求选InnoDB,统计报表可选MyISAM,以提升性能与稳定性。166 收藏 -
如何在MySQL中创建数据库并设置不同的字符集编码?使用CREATEDATABASE命令并指定CHARACTERSET和COLLATE选项即可。1)创建命令示例:CREATEDATABASEmydbCHARACTERSETutf8mb4COLLATEutf8mb4_unicode_ci。2)选择utf8mb4支持扩展字符。3)对于日文数据,可用utf8和utf8_bin排序规则:CREATEDATABASEjpdbCHARACTERSETutf8COLLATEutf8_bin。159 收藏 -
通过订单列表慢查询案例,演示如何阅读 EXPLAIN 的 type、key、rows、Extra 字段,并设计联合索引优化 WHERE、ORDER BY 和 LIMIT 分页。159 收藏 -
数据库 · MySQL | 3星期前 | 性能优化 · InnoDB · 故障排查 · MySQL教程 · DBA实战 · mysql innodb 性能优化 预热 冷启动 MySQL 8.4 Buffer Pool
从数据库重启后热点接口 P99 抖动切入,讲清 MySQL 8.x InnoDB Buffer Pool dump/load、冷启动诊断、预热脚本、参数检查和上线演练。158 收藏 -
本文用订单号查询变慢的场景,演示 MySQL 隐式转换如何导致索引无法稳定命中,并给出字段类型统一、参数绑定和上线检查方案。152 收藏 -
数据库 · MySQL | 3星期前 | 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 | 3星期前 | binlog · 主从复制 · 故障排查 · MySQL教程 · DBA实战 · mysql DBA binlog 主从复制 MySQL 8.4 复制延迟 relay log
从只读库延迟导致读到旧数据的事故切入,讲清 MySQL 8.x 复制延迟如何区分 IO 接收、relay log 应用、大事务、并行复制和只读流量影响。119 收藏