Go语言技术文章
-
解释 MySQL JSON 数组普通索引失效的原因,说明 CAST AS ARRAY 多值索引、三类可优化谓词、类型一致性及覆盖索引和空数组限制。326 收藏 -
Redis Function 适合持久化、可复用的服务端逻辑,临时 Lua 脚本适合由应用按需加载的短逻辑;本文对比两者的部署、版本管理和 EVALSHA 恢复方式。326 收藏 -
MySQL 字符串比较结果异常时,按连接、列和表达式三层定位 collation,再用查询级 COLLATE 或列级配置完成修复。326 收藏 -
Redis LMPOP 可以在多个候选列表中按 key 顺序找到第一个非空列表,再从 LEFT 或 RIGHT 批量弹出元素。本文说明参数、返回结构、空结果、优先级队列设计,并比较 BLMPOP 与 LMOVE 的适用边界。326 收藏 -
本文说明 Redis CMS.MERGE 的 WEIGHTS 写法、来源顺序、同 width/depth 约束和 CMS.QUERY 读取方式,帮助把多份 Count-Min Sketch 按来源贡献合并到目标草图。326 收藏 -
Redis 更新值后 TTL 消失,通常是普通 SET 覆盖值时丢弃了原过期时间。本文用 TTL、PTTL、EXISTS 区分状态,并比较 KEEPTTL、EX/PX 与 volatile 淘汰策略。325 收藏 -
解释 MySQL 外键 ON DELETE SET NULL 为什么要求子表外键列允许 NULL,并用父子表示例、建表语句和动作对比说明如何选择 SET NULL、CASCADE 与 RESTRICT。325 收藏 -
Redis COPY 的 REPLACE 会整体替换已存在的目标 key,而不是合并字段。本文用返回值、对象边界、TTL、复杂度和集群槽位说明如何安全判断复制结果。325 收藏 -
介绍 MySQL EXPLAIN FORMAT=JSON 中 cost_info 的层级、字段含义和 JSON_EXTRACT 提取方法,说明如何结合访问类型、扫描行数与版本边界判断查询优化方向。325 收藏 -
Redis 过期键并不是只靠一个定时器逐个删除:客户端访问到已过期键时会触发访问时处理,后台也会周期性抽样清理。本文用 TTL 的正数、-1、-2 返回值建立排查顺序,并说明主动过期、访问时删除和时间精度的边界。324 收藏 -
Redis Streams 消费者组积压要先区分 lag 与 pending。本文用 XINFO、XPENDING、XAUTOCLAIM、XACK 和 XTRIM 组织认领、有限重试、死信与安全裁剪,并说明不同 Redis 版本的边界。324 收藏 -
MySQL 的 ALTER TABLE 即使使用在线 DDL,也可能在提交表定义时等待独占元数据锁。本文从 Waiting for table metadata lock 现象出发,结合 SHOW FULL PROCESSLIST、performance_schema.metadata_locks 和 threads 找到持锁会话,再把处理动作安排到合适的变更窗口。324 收藏 -
用 mysqldump 的一致性读、备份时点 GTID 和副本状态联合确认 InnoDB 在线备份的快照边界,解释为什么 Seconds_Behind_Source 不能单独证明备份一致。323 收藏 -
Redis SCAN 不是并发安全的静态快照:从扫描开始到结束始终存在的键会被完整迭代返回,但扫描期间被删除、新增或重新加入的键可能返回也可能不返回。本文给出重复返回、COUNT、UNLINK 和二次复查的处理方式。323 收藏 -
Redis 客户端缓存要解决的不是如何保存本地副本,而是数据变化后如何可靠地让副本失效。本文对比默认 Tracking 与 BCAST 广播模式,给出 RESP3 单连接、RESP2 REDIRECT 双连接、前缀范围和断线处理的落地选择。323 收藏