Go语言技术文章
-
Redis 8.4 为 XREADGROUP 增加 CLAIM 选项,可在一次读取中优先接管达到空闲阈值的 Pending 消息,再读取新消息。本文用订单通知流说明 COUNT、BLOCK、重试计数和 XACK 的生产边界。266 收藏 -
数据库 · MySQL | 11小时前 | MySQL · 执行计划 · 统计信息 · sql优化 · 数据库排查 · 查询优化 MySQL 8.4 直方图统计 ANALYZE TABLE COLUMN_STATISTICS
MySQL 查询明明有索引,优化器却把结果行数估得很离谱时,问题可能在列值分布而不是索引定义。本文用订单状态分布不均的场景,演示 MySQL 8.4 直方图的生成、读取、采样率核对与安全删除,说明它适合修正什么判断,以及哪些列不能生成直方图。350 收藏 -
数据库 · MySQL | 11小时前 | MySQL · 执行计划 · 统计信息 · sql优化 · 数据库排查 · 查询优化 MySQL 8.4 直方图统计 ANALYZE TABLE COLUMN_STATISTICS
MySQL 查询明明有索引,优化器却把结果行数估得很离谱时,问题可能在列值分布而不是索引定义。本文用订单状态分布不均的场景,演示 MySQL 8.4 直方图的生成、读取、采样率核对与安全删除,说明它适合修正什么判断,以及哪些列不能生成直方图。353 收藏 -
数据库 · Redis | 12小时前 | Redis · 消息队列 · 数据库 · 性能优化 · Redis Streams · Redis Streams Redis 8.2 XACKDEL XDELEX 多消费组
Redis 8.2 为 Streams 增加 XACKDEL 和 XDELEX,可在多消费组场景中把确认与删除、删除与消费组引用处理放进同一条命令。本文用可复现实验比较旧式客户端清理流程与 ACKED 策略的延迟、删除结果和边界。136 收藏 -
MySQL 索引不是越多越好。本文用 orders 表演示如何先把候选索引设为 INVISIBLE,再结合 EXPLAIN ANALYZE、慢查询和写入开销验证,确认无误后再删除,并保留可回退路径。499 收藏 -
MySQL 分区表按时间清理历史数据时,逐行 DELETE 可能带来长事务、undo 增长和锁等待。本文从一次线上删除变慢的现象出发,说明如何确认分区边界、选择 DROP PARTITION,并用复查动作验证空间和业务影响。316 收藏 -
Redis 开启 AOF 后,后台重写可能让延迟突然抖高。本文用 INFO persistence、内存和磁盘指标拆开判断 fork、写时复制、AOF 增量与磁盘瓶颈,并给出安全验收与回退方法。467 收藏 -
数据库 · Redis | 5天前 | Redis · 消息队列 · Stream · 故障恢复 · 消费者组 · redis streams 消息重试 消费者组 XAUTOCLAIM 积压消息 PEL
Redis Streams 消费者组出现积压时,XAUTOCLAIM 可以把超过最小空闲时间的 pending 消息交给健康消费者继续处理。本文用故障接管场景说明 start 游标、COUNT、JUSTID、重试次数和删除幽灵消息的验收边界。148 收藏 -
数据库 · Redis | 6天前 | Redis · 查询优化 · 性能边界 · Sorted Set · 集合运算 · redis limit Sorted Set ZINTERCARD 集合交集 基数统计
Redis ZINTERCARD 只返回多个 Sorted Set 的交集数量,适合在推荐、活动资格和筛选接口中先做交集基数判断。本文用 redis-cli 拆开 ZINTERCARD 与 ZINTER、LIMIT 的差别,说明空 key、集群同槽和“大于阈值”判断的边界。254 收藏 -
复合索引不一定必须从第一列开始过滤。本文用订单明细查询说明 MySQL 8.4 Skip Scan 如何跳过索引前缀、什么条件下能被优化器选中,以及如何用 EXPLAIN、统计信息和会话级开关验收,避免把一次命中误判成长期方案。394 收藏 -
用 MySQL 8.0 的 SKIP LOCKED 做并发任务抢占,关键不在于把锁语句拼出来,而在于限定索引范围、保持短事务、正确处理空队列,并用状态更新和幂等键验收重复消费。228 收藏 -
Redis 客户端缓存开启 CLIENT TRACKING 后,如何确认读过的键能收到失效通知?本文用 RESP3、BCAST、NOLOOP 和 TRACKINGINFO 组成一套可复查的验收流程。500 收藏