Go语言技术文章
-
Redis SCAN 可配合 MATCH 和 COUNT 分批扫描业务键,但空批次不代表结束,COUNT 也不是页大小。本文给出只读游标循环,说明重复键、并发变化、中断状态及扫描范围的处理方式。168 收藏 -
Redis XADD 的 LIMIT 不是 Stream 的最终长度限制,而是配合 MAXLEN 或 MINID 裁剪时控制单次工作量的参数。本文说明 ~、LIMIT、精确裁剪和 count 取值的关系。371 收藏 -
Redis XGROUP SETID 修改的是消费组的 last-delivered-ID,而不是单个消费者的私有游标。本文说明 0-0、$ 和指定消息 ID 的区别,并梳理新消费者用 > 读取时与已有 PEL、XACK 及 ENTRIESREAD 的边界。154 收藏 -
Redis XREADGROUP 加上 NOACK 后,读取到的新消息不会进入 Pending Entries List,因此 XPENDING 看不到新增记录。本文从 PEL、XACK、消息 ID 和可靠性取舍说明原因,并给出何时保留默认确认流程的判断方法。468 收藏 -
Redis XTRIM MINID 按消息 ID 阈值清理 Stream,严格小于阈值的消息才在清理范围内。本文区分精确与近似模式、消息时间与业务时间,并说明消费者组 PEL 引用、版本策略、权限及审计注意事项。176 收藏 -
Redis XLEN 用 O(1) 复杂度返回 Stream 的条目数,适合做积压排查前的总量判断。本文说明 XLEN 的最小用法、返回 0 的两种边界,以及它和消费组 pending、lag 指标的区别。338 收藏 -
Redis Stream 消费组出现积压时,XPENDING 可以先查看待处理总数、消息 ID 范围、责任消费者、空闲时间和投递次数。本文用摘要、范围、消费者与 IDLE 过滤说明排查顺序,并区分读取诊断与消息接管。238 收藏 -
MySQL SET_VAR hint 可以把 sort_buffer_size 等会话变量临时绑定到一条语句。本文用排序查询说明正确写法、语句级作用范围、EXPLAIN 与 SHOW WARNINGS 排查方法,以及变量不可设置和子查询忽略等边界。257 收藏 -
utf8mb4_0900_ai_ci 会把重音和大小写差异降到同一比较层级。本文用可复现 SQL 说明比较、索引、唯一约束与正则边界,并给出切换排序规则的判断方法。369 收藏 -
MySQL gap lock 保护索引间隙,锁定范围不一定等于 WHERE 条件范围。本文用 MySQL 8.4 InnoDB 双会话示例解释范围外插入等待,并给出锁依赖查询、释放方式及隔离级别调整的注意事项。191 收藏 -
从事务快照建立时机入手,解释 MySQL 默认 REPEATABLE READ 下普通 SELECT 为什么看不到其他会话刚提交的数据,并给出提交事务、READ COMMITTED 与锁定读的选择边界。499 收藏 -
MySQL JSON_UNQUOTE 用来去掉 JSON 字符串值的外层引号,并按 JSON 规则处理转义字符。本文从 JSON_EXTRACT 与 ->> 的差异切入,说明数组、对象、NULL、无效字符串和 NO_BACKSLASH_ESCAPES 的边界,帮助你把 JSON 标量安全交给 SQL 或应用层。209 收藏 -
MySQL 直方图把列值分布补充给优化器,帮助它更准确估算 WHERE 条件的选择率。本文说明如何生成、查看和维护直方图,并用 EXPLAIN 判断它是否改善了计划选择。400 收藏 -
MySQL 可用 REGEXP_REPLACE 将连续普通空格压缩为一个。本文以临时表构建清理示例,区分首尾空格、制表符、换行和 NULL,给出预览、事务试写、回滚及业务字段集成的注意事项。308 收藏 -
MySQL 的 derived_merge 默认允许优化器把派生表合并进外层查询块。本文说明怎样只在当前会话临时关闭它、如何查看与恢复设置,以及为什么 EXPLAIN 计划有时仍不会改变。423 收藏