Go语言技术文章
-
Redis pipeline 返回结果与发送命令一一对应,但单条命令错误、连接中断和事务失败的执行边界不同。本文用响应下标、批次和重试策略说明如何判断哪些命令已执行。478 收藏 -
用 EXPLAIN 判断索引选择问题,比较 USE INDEX、FORCE INDEX 与 MySQL optimizer hint 的作用范围、风险和验证方式。478 收藏 -
MySQL EXPLAIN FORMAT=JSON 的嵌套循环成本要结合 nested_loop、rows_examined_per_scan、rows_produced_per_join 和 cost_info.prefix_cost 阅读。本文用一条 JOIN 示例说明如何找出成本被放大的连接分支,并区分优化器估算与实际耗时。166 收藏 -
Redis FCALL_RO 只允许执行声明为 no-writes 的函数,适合可接受复制延迟的只读副本查询;FCALL 面向普通读写函数并应按节点角色路由。205 收藏 -
Redis Lua 脚本如何把多个 key 的读取、条件校验和修改放进一次原子执行,并正确使用 KEYS、ARGV、hash tag 与 EVALSHA。423 收藏 -
Redis ZINCRBY 使用双精度浮点分值,直接累加小数可能出现展示误差。本文用两位小数积分榜演示整数缩放、历史数据修复和上线验收。490 收藏 -
MySQL 按业务时区统计日期时,不能先对 UTC 时间取 DATE 再转换。本文用 CONVERT_TZ 处理跨午夜记录,并说明半开区间、命名时区表和 NULL 排查方法。168 收藏 -
MySQL JOIN 报 Illegal mix of collations 时,先核对两列的字符集和排序规则,再用查询级 COLLATE 临时恢复,最后统一字段定义并检查索引与匹配语义。446 收藏 -
讲清 Redis ZRANGEBYSCORE 默认闭区间、括号开区间、无限范围、LIMIT 与 ZRANGE BYSCORE 迁移写法。440 收藏 -
MySQL 递归 CTE 的列类型只由非递归锚点推断。生成日期序列时显式 CAST 为 DATE,并把格式化文本移到 CTE 外部,可避免截断和严格模式报错。104 收藏 -
用 Redis HSCAN 的 cursor 循环渐进读取大型 Hash,解释 COUNT、MATCH、NOVALUES 的边界,以及数据变化时如何用幂等处理降低重复和漏读风险。237 收藏 -
MySQL 递归 CTE 遍历树数据时,应在路径中记录已访问节点,用 FIND_IN_SET 排除重复引用,再用深度、递归层数和执行时间限制兜底,避免脏数据造成无限循环。142 收藏 -
Redis EXPIRE 再次续期会直接替换旧 TTL。本文用会话滑动过期场景解释默认语义,并比较 NX、XX、GT、LT 的使用边界与排查方法。273 收藏 -
MySQL invisible index 可以在不删除索引的情况下观察优化器计划变化。本文用 IS_VISIBLE、EXPLAIN、ALTER INDEX 和 SET_VAR 说明如何安全评估索引下线影响。300 收藏 -
Redis TTL 返回 -1 表示键存在但没有过期时间,-2 表示键不存在。本文用命令和 Go 分支示例区分三种状态,并排查普通 SET 覆盖、过期窗口和查询上下文不一致等常见原因。216 收藏