Go语言技术文章
-
通过 MySQL Optimizer Trace 查看候选索引、估算行数、成本与最终选择原因,掌握同一会话开启、读取和关闭追踪的方法。500 收藏 -
联合索引列顺序不能只看区分度。本文用订单查询逐项判断等值前缀、首个范围列、排序方向与稳定分页,再结合 key_len、Using filesort 和 EXPLAIN ANALYZE 验证设计。500 收藏 -
数据库 · MySQL | 3星期前 | MySQL · InnoDB · MySQL锁等待 performance_schema.data_lock_waits data_locks锁对象 InnoDB事务阻塞 锁等待链定位
从 data_lock_waits 和 data_locks 还原等待事务、阻塞事务及锁对象,再映射到 InnoDB 会话和最后 SQL,形成一套可复核的 MySQL 锁等待链定位方法。497 收藏 -
Redis Lua 脚本不要只返回 OK 或空值。本文用固定的状态码与 payload 契约区分业务成功、状态冲突、条件未满足和命令执行错误,并给出 pcall 与 Go 客户端解析的迁移清单。493 收藏 -
Redis Array 用整数索引保存可稀疏分布的字符串,随机访问不受逻辑长度影响。本文通过 ARSET、ARGET、ARLEN、ARCOUNT 与 ARSCAN 说明建模方式、读取边界和兼容性取舍。490 收藏 -
用Redis ZSET的score保存到期时间,以唯一任务成员和幂等键控制重复入队,再通过原子领取、租约与退避重试处理消费者崩溃和延迟漂移。489 收藏 -
MySQL GROUP_CONCAT 的稳定结果取决于函数内部的 ORDER BY、文本 COLLATE、并列键和长度上限。本文用标签聚合示例说明排序、去重、NULL、分隔符与 group_concat_max_len 的实际边界。488 收藏 -
说明 MySQL Hash Join 的构建端、join_buffer_size、多个连接缓冲和并发放大关系,并给出执行计划判断、磁盘溢写识别与参数调整建议。488 收藏 -
定位 MySQL 的 Illegal mix of collations,不要先改全库字符集;应先对报错表达式两侧执行 COLLATION() 与 COERCIBILITY(),再检查列定义和连接变量。486 收藏 -
围绕 Redis Stream 消费组的 PEL,讲清 XAUTOCLAIM 的空闲阈值、批量 COUNT、返回游标、失效消息清理和 JUSTID 边界,并给出接管后幂等处理与 XACK 确认方案。485 收藏 -
Redis 广播模式不会天然少发失效消息,它用前缀表替代逐键跟踪。要减少无关通知,应设计稳定且不重叠的键前缀,按客户端缓存域配置 PREFIX,并处理 NOLOOP、连接断开和读写竞态。484 收藏 -
Redis Cluster 迁移 hash slot 时,客户端不能把 ASK 和 MOVED 当成同一种重试信号。本文从 MIGRATING、IMPORTING 状态切入,说明 ASK 只重试当前命令、MOVED 才更新槽位映射,并给出带重试上限、多键约束和幂等性边界的客户端设计方法。481 收藏 -
Optimizer Trace 适合解释 MySQL 优化器为什么选择某个索引、访问方式或连接顺序。本文给出当前会话抓取、读取决策节点、识别追踪不完整和补充运行时验证的实操方法。480 收藏 -
从范围条件估算失真入手,讲清 MySQL 直方图的适用场景、创建语法、统计查看、EXPLAIN 检查以及更新和删除边界。478 收藏 -
Redis Hash适合字段级读取和局部更新,JSON字符串适合整对象缓存;如果必须按JSONPath原子修改文档,再评估RedisJSON。本文用Go示例梳理三种方式的边界、过期策略和并发取舍。476 收藏