Go语言技术文章
-
从 SHOW ENGINE INNODB STATUS、innodb_print_all_deadlocks 和 Performance Schema 的锁表与历史语句中,定位 MySQL 事务死锁对应的具体 SQL。167 收藏 -
MySQL EXPLAIN FORMAT=JSON 的嵌套循环成本要结合 nested_loop、rows_examined_per_scan、rows_produced_per_join 和 cost_info.prefix_cost 阅读。本文用一条 JOIN 示例说明如何找出成本被放大的连接分支,并区分优化器估算与实际耗时。166 收藏 -
Redis WATCH 只能在提交前发现被监视键发生变化,并不能保证事务一定成功。本文用并发写入示例拆开事务提交返回空数组、重试窗口和放弃重试的业务边界。165 收藏 -
MySQL 递归 CTE 的安全边界不能只依赖默认报错。本文用层级树示例区分业务深度、cte_max_recursion_depth、递归 LIMIT 和执行超时,并说明如何排查无限展开与环形数据。165 收藏 -
Redis 过期键到了时间却没有立刻消失,通常不是 TTL 失效,而是惰性删除与定期采样的工作方式。本文用 TTL、EXISTS 和内存指标区分可见延迟、采样清理与大键风险。164 收藏 -
Redis 的 EXPIRE 作用在整个 key 上,不能直接给同一个 HASH 的每个 field 设置独立 TTL。本文从用户会话属性和临时状态的场景出发,对比拆 key、时间戳字段、ZSET 索引三种设计,并给出清理任务、并发边界和验收方法。162 收藏 -
用 Redis SETBIT 把每天签到压成位图,重点处理日期偏移、BITCOUNT 统计、重复签到和跨月清理,附可运行示例与核对方法。162 收藏 -
Redis MEMORY USAGE 的 SAMPLES 不是精度百分比,而是嵌套集合成员的采样数量。本文解释默认值、SAMPLES 0、估算波动和容量规划时的取值方法。162 收藏 -
用一个订单明细 XML 示例讲清 MySQL 8.4 LOAD XML 的行识别、属性与标签映射、LOCAL 风险及导入后核对方法。161 收藏 -
从 MySQL 的 LATEST DETECTED DEADLOCK 中区分两条事务已持有的锁和正在等待的锁,再结合表名、索引名与 SQL 访问路径还原相反加锁顺序,并给出修复后的验证方法。161 收藏 -
解释 Redis WATCH 监视键在 EXEC 前被修改时为什么返回 nil,并用双客户端示意、有限重试和边界清单处理乐观锁冲突。159 收藏 -
Redis WAIT 用于等待当前连接此前写命令被副本确认,但超时后仍会返回已确认的副本数。本文用 SET、WAIT 和 INFO replication 演示如何判断返回值、区分复制确认与强一致,并处理连接复用和超时边界。157 收藏 -
MySQL REGEXP_LIKE 匹配结果不稳定时,先拆开字符集、排序规则、大小写和反斜杠四个边界。本文给出一套可复现的排查 SQL、修复写法与验收清单。157 收藏 -
Redis Cluster 扩缩容或 reshard 时,MOVED 和 ASK 都可能出现在客户端日志里,但它们代表的路由语义不同。本文从 slot 所有权、MIGRATING/IMPORTING 状态和客户端拓扑缓存出发,说明如何判断重定向是否正常以及该刷新什么。157 收藏 -
Redis HyperLogLog 能用很小的空间估算唯一元素数量,但 PFCOUNT 的结果存在近似误差且无法提供成员明细。本文说明误差如何放大到计费金额,并给出趋势统计与精确账单分层、命名、抽样对账和回退检查清单。156 收藏