Go语言技术文章
-
本文用一套可复用工作流讲清 MySQL 深分页优化:先识别 OFFSET 大扫描,再选择游标翻页、延迟关联和覆盖索引,最后用执行计划和响应耗时验证结果。429 收藏 -
本文整理一套 MySQL InnoDB 死锁排查工作流:从应用报错开始,查看 InnoDB 状态,定位锁等待环,统一事务加锁顺序,缩短锁持有时间,并在业务侧加入有限重试保护。392 收藏 -
本文按完整工作流讲解 MySQL 慢 SQL 优化:从慢查询日志发现候选 SQL,聚合同类语句,用 EXPLAIN 判断访问方式和扫描行数,再设计联合索引,并通过延迟、扫描行数和业务结果做回归验证。321 收藏 -
本文从热点 Key 过期导致数据库 QPS 飙升的现场出发,排查 Redis 缓存击穿原因,并用互斥锁、旧值兜底和缓存重建流程修复。235 收藏 -
本文从 Redis 分布式锁偶发并发进入的现场出发,复现旧请求误删新锁的问题,定位锁值缺少身份标记的根因,并用 token 校验方式修复释放锁流程。464 收藏 -
从循环 GET 多个 Redis key 导致接口变慢的现场开始,排查网络往返累积问题,再用 Pipeline、分批窗口和结果顺序对齐优化批量读写。436 收藏 -
从一个唯一索引没有拦住多条 NULL 数据的现场开始,复现 MySQL 唯一索引与 NULL 的行为,再用 NOT NULL、业务默认值和生成列三种方案修复约束边界。109 收藏 -
排行榜看起来只是查个 TOP 列表,真正落地时还要处理加分、我的排名、分页、同分规则、周期榜和过期清理。本文按完整工作流拆解 Redis ZSET 排行榜设计。407 收藏 -
数据库 · Redis | 1星期前 | Redis · Streams · 消费者组 · Pending · XACK · 消息堆积 消费者组 XACK XPENDING XAUTOCLAIM Redis Streams
Redis Streams 消费者组如果消费者掉线或处理失败,消息会留在 Pending 列表里,表现为队列越积越多。本文从现象复现、XINFO/XPENDING 检查、认领重试到 XACK 确认,完整排查一次消费堆积问题。385 收藏 -
列表页分页常常要查总数,但 COUNT(*) 一慢,整个页面都会被拖住。本文按完整工作流拆解:先确认筛选条件和扫描行数,再选择联合索引、缓存总数或汇总表,最后给出上线检查清单。329 收藏 -
搜索框查询一上线就变慢,很多时候不是数据量突然失控,而是 LIKE 条件写法让索引用不上。本文从慢查询现场开始,逐步验证左通配符、执行计划、前缀匹配和业务改写,整理一套更稳的模糊搜索排查方法。308 收藏 -
活动报名、接口去重、用户访问统计里经常会用 Redis Set。本文从“页面显示人数不对”的现场开始,逐步验证 SADD 返回值、SCARD 数量、Key 粒度和过期策略,整理一套更稳的 Set 去重写法。194 收藏 -
数据库 · MySQL | 1星期前 | MySQL · 数据库 · 联合索引 · ORDER BY · 慢查询排查 · mysql order by explain 慢查询 联合索引 filesort
本文从列表接口排序变慢的现场开始,带你用 EXPLAIN 看执行计划,定位 ORDER BY 触发 filesort 的原因,再按筛选字段和排序字段设计联合索引,最后通过 rows、Extra 和耗时变化验证优化效果。203 收藏 -
本文用附近门店查询场景讲清 Redis GEO:如何把门店经纬度写入地理索引,如何按用户当前位置做半径检索、距离排序和分页返回,并整理上线时常见的坐标、单位、数据更新问题。368 收藏 -
本文用秒杀扣库存场景讲清 Redis Lua 的落地方式:在一个脚本里完成库存校验、重复订单判断、扣减库存和记录订单结果,减少并发下超卖和重复扣减风险。118 收藏