Go语言技术文章
-
给一个需要同时写入多个 Redis 字符串键的初始化场景,说明 MSETNX 为什么能做到全成全败、返回 0 时如何定位已存在键,以及单机原子语义在集群多键操作中的边界。189 收藏 -
Redis 过期键到了时间却没有立刻消失,通常不是 TTL 失效,而是惰性删除与定期采样的工作方式。本文用 TTL、EXISTS 和内存指标区分可见延迟、采样清理与大键风险。164 收藏 -
用 Redis SETBIT 把每天签到压成位图,重点处理日期偏移、BITCOUNT 统计、重复签到和跨月清理,附可运行示例与核对方法。162 收藏 -
用一个订单明细 XML 示例讲清 MySQL 8.4 LOAD XML 的行识别、属性与标签映射、LOCAL 风险及导入后核对方法。161 收藏 -
数据库 · MySQL | 5小时前 | MySQL · 事务 · C API · 批量写入 · 批量Insert mysql_info mysql_affected_rows CLIENT_FOUND_ROWS
批量 INSERT 成功后,mysql_affected_rows() 只能给出影响行数,mysql_info() 还能返回 Records、Duplicates、Warnings 等细节。本文用 MySQL 8.4 C API 示例说明两者如何配合,以及 CLIENT_FOUND_ROWS 什么时候会改变判断。152 收藏 -
用 MySQL 8.4 的 JSON_VALUE 读取 JSON 字段时,NULL 可能来自缺失路径、JSON null 或类型转换失败。本文通过 RETURNING、ON EMPTY、ON ERROR 和 SHOW WARNINGS 拆开这些边界,避免坏数据被静默放行。140 收藏 -
围绕 go-redis 的 PoolTimeout、连接回收和 PING 验收,拆解客户端请求超时后连接是否还能复用,以及如何用可观察的检查判断半开连接。137 收藏 -
用 Redis INFO commandstats 拆解单命令 CPU 异常,理解 calls、usec、usec_per_call、failed_calls 与采样窗口的关系,并给出可复核的排查流程。135 收藏 -
用 MySQL EVENT 做定时清理时,真正容易漏掉的是全局启用状态、会话时区和执行记录。本文用一张清理任务表说明如何配置、验证、留痕与安全停用。132 收藏 -
Redis 设置了 EXPIRE 后,键并不一定在到点瞬间从内存消失。本文从 TTL 读数、访问触发的惰性删除和后台主动过期检查入手,说明为什么会看到过期键,以及怎样用命令判断问题究竟在观察方式、访问路径还是过期清理压力。122 收藏 -
MySQL 报 Too many connections 时,不要先盲目调大 max_connections。本文用 Threads_connected、Threads_running、SHOW PROCESSLIST、Connections 和 Threads_created 建立一条可复现的定位顺序,区分连接泄漏、并发峰值与线程创建开销。119 收藏 -
Redis ZDIFFSTORE 会把第一个有序集合中不属于后续集合的成员写入目标键。本文用候选榜与已处理榜说明差集的成员边界、分值保留规则、空结果和集群同槽核验。112 收藏 -
MySQL 主从切换后如何确认新主库已经追上指定事务?本文用 GTID 集合和等待函数组织一套可回滚的断点判断流程,覆盖超时、空集合和误判场景。111 收藏 -
REPLACE INTO 遇到主键或唯一键冲突时,不是原地更新,而是先删除旧行再插入新行。本文用订单同步场景拆开执行语义、AUTO_INCREMENT、外键级联和更稳妥的替代写法。109 收藏 -
数据库 · MySQL | 1天前 | 慢查询 · sql优化 · MySQL教程 · mysql explain EXPLAIN ANALYZE sort_buffer_size Using filesort
EXPLAIN 出现 Using filesort 只说明排序没有直接由索引完成,并不等于查询一定很慢。本文用订单列表场景拆开 filesort 的输入行数、排序缓冲区、临时文件和实际耗时,给出可复现的判断与优化顺序。109 收藏