MySQL技术文章
-
数据库 · MySQL | 1个月前 | 字符集 · 故障排查 · MySQL教程 · 索引优化 · 排序规则 · mysql 排序规则 索引优化 utf8mb4 collation MySQL 8.4
从账号唯一键和昵称搜索踩坑切入,讲清 MySQL 8.x utf8mb4_0900_ai_ci、大小写/重音敏感、collation 混用、隐式转换与索引命中验证。294 收藏 -
数据库 · MySQL | 1个月前 | MySQL教程 · 慢查询治理 · 索引优化 · JSON查询 · InnoDB实战 · mysql JSON 慢查询 索引优化 MySQL 8.4 多值索引
从标签检索接口慢查询切入,讲清 MySQL 8.x 多值索引如何让 JSON 数组条件命中索引,以及建索引、EXPLAIN 验证、写入成本和上线回滚检查。291 收藏 -
<p>MySQL数据库创建的完整流程包括规划、命名、创建数据库、创建表、权限管理和最佳实践。1.规划时需考虑数据类型、规模、访问频率和扩展性。2.命名应简洁明了并与项目一致,如"projectx_db"。3.使用SQL命令创建数据库并设置字符集和排序规则,如CREATEDATABASEprojectx_dbCHARACTERSETutf8mb4COLLATEutf8mb4_unicode_ci;。4.创建表时遵循规范化设计,避免数据冗余,如CREATETABLEusers(idINTAUTO_287 收藏 -
MySQL的查询缓存已废弃,是否还值得使用取决于版本和业务场景。1.查询缓存可缓存SELECT语句及其结果,提升读多写少场景的性能;2.但一旦表有写入操作,相关缓存会被清空,高并发写入时易引发性能问题;3.MySQL5.7.20开始标记为废弃,8.0彻底移除,建议使用Redis等外部缓存替代;4.启用时需配置query_cache_type和query_cache_size参数,并合理控制内存大小;5.可通过Qcache_hits、Com_select、Qcache_inserts等状态变量判断缓存命中情285 收藏 -
数据库 · MySQL | 20小时前 | MySQL · 索引 · limit · explain · sql优化 · ORDER BY · mysql order by explain limit 复合索引 filesort
一条只取 20 行的订单查询,EXPLAIN 却可能放弃看似更贴近 WHERE 条件的索引,改走排序索引并在途中筛选。原因是 LIMIT 同时改变了排序、过滤和回表的成本取舍。通过读懂 key、rows 和 Extra,给等值条件与排序字段设计复合索引,再用受控对比核实实际读行,才能避免把 filesort 或某个索引名称当成唯一结论。279 收藏 -
通过一个可复现的小实验,从订单列表慢查询开始,初始化表和数据,添加复合索引,再用 EXPLAIN 检查 Using index,理解覆盖索引的适用边界。276 收藏 -
数据库 · MySQL | 1个月前 | 性能优化 · InnoDB · MySQL教程 · 数据库运维 · 高并发写入 · mysql innodb 批量写入 Change Buffer innodb_change_buffering
从 MySQL 8.4 InnoDB Change Buffer 默认值变化入手,讲清批量写入、二级索引随机 I/O、merge 观察和上线回滚。270 收藏 -
数据库 · MySQL | 1个月前 | 性能优化 · 执行计划 · MySQL教程 · 慢查询治理 · 数据库运维 · mysql GROUP BY优化 TempTable 内部临时表 Created_tmp_disk_tables
从 MySQL 8.4 内部临时表和 TempTable 入手,讲清 GROUP BY、ORDER BY、DISTINCT 落盘诊断、SQL 改写、索引策略和参数兜底。267 收藏 -
本文用订单表归档为例,讲清 MySQL 历史数据如何按时间窗口分批搬迁:先确定归档边界,再批量写入归档表,校验数量和金额,最后小批量清理热表,降低锁等待和慢查询风险。261 收藏 -
MySQL 多租户订单表变慢时,先用 tenant_id 领头的联合索引稳住常见查询;当热点租户持续拉高 rows、慢日志和队列等待,再考虑租户路由、冷热分流或独立分片。259 收藏 -
数据库 · MySQL | 1个月前 | 性能优化 · 高并发 · InnoDB · MySQL教程 · 数据库运维 · mysql innodb AUTO_INCREMENT 高并发写入 innodb_autoinc_lock_mode
从 MySQL 8.4 AUTO_INCREMENT 锁模式入手,讲清高并发 INSERT、批量导入、复制格式和上线回滚检查。254 收藏 -
本文按数据生命周期说明 MySQL 消息已读表设计:消息如何产生,已读记录如何去重写入,未读数如何查询,重复点击和并发如何处理,以及历史数据如何清理。243 收藏 -
数据库 · MySQL | 2星期前 | MySQL · InnoDB · 性能排查 · 故障复盘 · 长事务 · mysql PURGE 长事务 Undo history list length 写入延迟
复盘一次 MySQL 写入延迟突然升高的问题:从影响面和时间线入手,通过 innodb_trx、history list length 和 purge 状态定位长事务拖住 undo 清理,并给出修复和防复发清单。242 收藏 -
数据库 · 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 收藏