Go语言技术文章
-
Redis BITFIELD 默认使用 WRAP;本文对比 WRAP、SAT、FAIL 的溢出语义,并从位宽、offset、作用范围和返回 nil 四个方向排查策略不生效。473 收藏 -
Redis Lua 脚本中的 key 必须通过 EVAL 的显式 key 参数传入,业务值放入 ARGV。本文用最小示例说明 numkeys 如何划分 KEYS 与 ARGV,并演示多 key 脚本的同槽检查。473 收藏 -
从业务负载、约束条件、成本和可靠性出发,对比 MySQL 单库、读写分离、分库分表和云 RDS 多可用区方案,给出可落地的选型清单。472 收藏 -
MySQL WITH RECURSIVE 查询层级数据时,真正需要防的是环路和无界展开。本文用组织架构示例拆开终止条件、递归深度上限、路径去重和结果核对。472 收藏 -
账号表用了软删除后,旧用户数据需要保留,新用户却可能再次使用同一邮箱。本文从真实注册冲突现场出发,说明复合唯一索引为何失效,以及如何用生成列把活跃账号约束、删除留档和恢复校验收进一条稳定的数据链路。471 收藏 -
订单导入或重试后出现重复记录时,不要直接 DELETE。本文用 MySQL 8.0 的 ROW_NUMBER() 按业务键分组、按时间保留最新行,先用 SELECT 检查待删数据,再用临时表和主键完成可回滚的清理。471 收藏 -
用一条带库存条件的 UPDATE 实现最小扣库存接口,避免先查后改造成超卖;同时说明受影响行、事务边界与死锁重试。470 收藏 -
MySQL GROUP_CONCAT 结果被截断时,先检查 group_concat_max_len,再按会话、全局和持久配置选择修复方式,并排除字节长度、排序、NULL 与 max_allowed_packet 等边界问题。470 收藏 -
Redis 同时开启 RDB 和 AOF 后,常规重启会优先使用 AOF 重建数据集;RDB 主要承担紧凑备份和较快恢复,本文按数据窗口、启动速度与重启前检查说明如何做取舍。470 收藏 -
子查询中用COUNT/SUM配WHERE易出错,需显式关联外层字段;存在性判断优先用EXISTS;多状态求和宜用CASE WHEN+SUM;性能差时应检查执行计划并加索引。子查询里用 COUNT 和 SUM 配 WHERE 容易出错 在子查询中直接写 COUNT(*) 或 SUM(column) 并469 收藏 -
Redis XREADGROUP 使用 BLOCK 参数控制没有新消息时的等待时长:BLOCK 2000 表示最多等待 2 秒,BLOCK 0 表示无限等待;读取待处理消息时使用非 > 的 ID,BLOCK 不会生效。469 收藏 -
本文用删除冗余索引的场景讲清 MySQL 不可见索引:它让优化器先忽略索引,用 EXPLAIN、慢查询和业务指标观察影响,再决定恢复可见或真正删除。468 收藏 -
MySQL 主从延迟不能只看 Seconds_Behind_Master。本文从复制线程状态、Relay_Log_Pos、Performance Schema 事务等待和大事务四个层次排查,并给出可回退的处理顺序。468 收藏 -
Redis 开启 AOF 后,后台重写可能让延迟突然抖高。本文用 INFO persistence、内存和磁盘指标拆开判断 fork、写时复制、AOF 增量与磁盘瓶颈,并给出安全验收与回退方法。467 收藏 -
MySQL 死锁日志最先要找的是等待事务和阻塞事务。本文从 LATEST DETECTED DEADLOCK 读出两端关系,再用 data_lock_waits 关联事务、线程、表和 SQL,最后说明锁顺序、索引与安全重试的修复重点。467 收藏