Go语言技术文章
-
MySQL CTE 可以把复杂筛选或聚合子查询命名后重复引用,本文用订单统计场景说明 WITH 的组织方式、列名与作用域边界,以及合并和物化对执行计划的影响。150 收藏 -
Using filesort 只说明 MySQL 需要额外排序,不等于一定要加索引。本文从 EXPLAIN 的 rows、LIMIT、排序字段、索引覆盖和 Sort_merge_passes 入手,给出判断是否需要优化的顺序。438 收藏 -
用 JSON_SEARCH 在限定路径内按 % 和 _ 搜索字符串,并正确处理 one/all、转义字符和 NULL 返回。288 收藏 -
MySQL JSON 字段建立生成列索引后仍可能不命中,关键在于查询表达式与生成列定义是否一致、结果类型是否一致,以及 JSON 字符串是否使用 JSON_UNQUOTE。本文用 EXPLAIN、possible_keys 和 key 给出排查顺序。155 收藏 -
MySQL JSON_EXTRACT 返回 JSON 字符串,展示文本可用 JSON_UNQUOTE 或列的 ->> 写法。本文比较返回契约,给出原创只读查询,区分路径缺失、JSON null 与字符串 null,并说明序列化边界。440 收藏 -
MySQL JSON_STORAGE_FREE 只有在 JSON 列通过 JSON_SET、JSON_REPLACE 或 JSON_REMOVE 进行合适的部分更新后,才可能返回正数。本文用可复用的 SQL 说明如何判断空闲空间、为什么结果为 0,以及如何结合 JSON_STORAGE_SIZE 排查。347 收藏 -
用 MySQL 的 SUM OVER 按客户分组计算订单累计金额,保留每条明细行,并说明稳定排序、窗口帧以及最终结果排序之间的区别。172 收藏 -
Redis ACL 要同时限制命令和键:用 ACL SETUSER 从零配置最小权限,显式移除全库命令,再用 ACL DRYRUN 排查命令或键模式未命中的原因。146 收藏 -
用 Redis SLOWLOG LEN 和 SLOWLOG GET 找到慢命令,读懂耗时与参数字段,再根据阈值和容量配置进行安全排查。406 收藏 -
Redis 持久化选择要先看可接受的数据丢失窗口,再比较 RDB 快照、AOF 增量日志和 RDB+AOF 组合。本文给出场景边界、fsync 配置和上线前检查清单。451 收藏 -
RedisJSON 的 JSON.MGET 可以把多个文档的同一路径一次读出,返回数组位置与输入 key 顺序对应;遇到 null 要区分 key 不存在和路径不存在,Redis Cluster 还要处理多 key 必须同 slot 的限制。463 收藏 -
Redis Pub/Sub 不保存离线消息,也不确认业务完成。本文比较纯通知、通知加状态回源与持久事件方案,说明断线、发布回执、重复处理及版本校正的可靠性边界。288 收藏 -
数据库 · Redis | 3星期前 | Redis · 错误处理 · 事务 · exec · watch Redis事务 Discard WRONGTYPE Redis MULTI EXECABORT
Redis MULTI 报错时,先看错误发生在命令入队前还是 EXEC 执行时:语法和参数错误要修正并清理事务,WRONGTYPE 等运行时错误要逐项检查 EXEC 返回数组,WATCH 冲突才适合按条件重试。170 收藏 -
Redis 键过期后,used_memory、used_memory_rss 和 allocator 内存不一定同时下降。本文从 TTL、过期清理、分配器碎片和 RSS 四个层次判断现象,再给出低风险的处理顺序。380 收藏 -
Redis HyperLogLog 可通过 PFADD 和 PFCOUNT 估算 UV。本文说明稳定访客标识、日期分桶、跨日并集、标准误差与过期策略,并区分趋势看板和精确成员需求。195 收藏