Go语言技术文章
-
解释 Redis HSCAN 的 COUNT 参数为什么只是提示值,演示如何用游标循环完整遍历 Hash,并通过批次上限控制客户端内存与处理耗时。319 收藏 -
迁移 MySQL utf8mb4 排序规则前,系统检查字符字段、索引、唯一键、外键、生成列与尾部空格语义,提前发现重复值和兼容性风险。319 收藏 -
说明 MySQL GET DIAGNOSTICS 如何区分语句信息和条件信息,并在存储程序中读取 SQLSTATE、错误号、消息文本及影响行数。318 收藏 -
用 SESSION 级 foreign_key_checks 安排 MySQL 外键迁移,保存原值、完成导入并用孤儿数据查询确认恢复结果。318 收藏 -
数据库 · MySQL | 1星期前 | MySQL · 事务 · InnoDB · Serializable READ COMMITTED REPEATABLE READ MySQL事务隔离级别 一致性读 InnoDB快照
从 InnoDB 快照建立时机入手,比较四种事务隔离级别对一致性读、并发提交和锁定读的影响,并给出两个会话的最小验证模板。317 收藏 -
MySQL 分区表按时间清理历史数据时,逐行 DELETE 可能带来长事务、undo 增长和锁等待。本文从一次线上删除变慢的现象出发,说明如何确认分区边界、选择 DROP PARTITION,并用复查动作验证空间和业务影响。316 收藏 -
MySQL CTE 不一定会被物化:优化器可能把它合并到外层查询,也可能建立内部临时表。本文用 MERGE、NO_MERGE 和 EXPLAIN FORMAT=JSON 说明怎样判断计划选择。315 收藏 -
Redis XINFO GROUPS 可以查看 Stream 消费组的消费者数量、待确认消息、最后投递 ID、逻辑读取计数和 lag。本文用 redis-cli 说明字段含义,并处理 lag 为 NULL、消息裁剪和监控判断等边界。315 收藏 -
Redis BZMPOP 用于在多个有序集合中按 MIN 或 MAX 弹出成员,并在全部为空时阻塞等待。本文说明 timeout、numkeys、COUNT、返回结构与 Redis Cluster 同槽约束。315 收藏 -
Redis 8.4 新增 MSETEX,可在一次操作中写入多个字符串键并共享过期策略。本文从旧式 MSET 加 EXPIRE 的等待链出发,核对 NX、XX、EX、PX、EXAT、PXAT 和 KEEPTTL 的边界,给出升级前后的验收方法。314 收藏 -
从只读视图部分调用者失败的现象入手,按创建时、引用时和函数执行时拆解权限检查,比较 SQL SECURITY DEFINER 与 INVOKER 的差异,并给出查看定义、选择上下文和防复发的处理顺序。314 收藏 -
Redis EXPIRE 的 GT 只接受比当前 TTL 更长的新过期时间,LT 只接受更短的时间;结合 TTL 返回值,可以安全实现缓存续期和过期收紧。313 收藏 -
通过 InnoDB 范围 UPDATE 与并发 INSERT 的双事务场景,解释记录锁、间隙锁和 next-key 锁何时出现,并给出索引、隔离级别、锁等待观察与缩小锁范围的实用判断方法。313 收藏 -
Redis Lua 脚本中,KEYS 只放 Redis key 名称,ARGV 放阈值、状态和新值等普通参数,numkeys 负责划分两者边界。本文用 EVAL、redis-cli 和 Go 客户端示例说明正确传参方式,并补充集群场景的 key 约束。313 收藏 -
用 performance_schema.data_lock_waits 连接等待锁与持有锁,再回到 data_locks 和线程事件核对对象、事务和处理顺序,避免只看到一个线程就误判。312 收藏