Go语言技术文章
-
用 ROW_NUMBER 为组内记录编号,演示 MySQL 分组取最新整行的写法,并说明 MAX 加回表、并列时间和索引复查要点。423 收藏 -
Redis MULTI 中要先区分队列阶段错误、WATCH 冲突和执行阶段错误。现代 Redis 的语法或参数错误会让 EXEC 返回 EXECABORT;类型错误可能进入结果数组,其他命令仍会执行。本文给出判断和有限重试边界。423 收藏 -
Redis Lua 脚本如何把多个 key 的读取、条件校验和修改放进一次原子执行,并正确使用 KEYS、ARGV、hash tag 与 EVALSHA。423 收藏 -
Redis Stream 消费者组出现积压时,先用 XPENDING 区分未分配消息和已分配未确认消息,再按 idle 时间和重试次数决定 XAUTOCLAIM、人工核查还是进入重试队列。本文用可复现的订单事件示例梳理定位、接管与回滚边界。422 收藏 -
重复点击、网络重试和消息重复投递都会让写入接口面对同一业务请求多次到达。本文说明如何用幂等键和唯一索引建立数据库边界,并比较重复时返回既有结果与更新既有记录的取舍。421 收藏 -
InnoDB 默认使用 REPEATABLE READ,范围更新可能拿到间隙锁。本文用订单号范围写入场景对比 READ COMMITTED 的锁行为,说明它能减少什么等待、不能替代什么并发保护,以及上线前如何用 data_locks 和事务回归确认结果。421 收藏 -
数据库 · MySQL | 1个月前 | MySQL · 查询优化 · 统计信息 · 性能排查 · 执行计划 EXPLAIN ANALYZE MySQL 8.0 直方图统计 ANALYZE TABLE
当 MySQL 对低基数或倾斜数据估算失准时,直方图统计可以补充普通索引统计。本文用订单状态筛选案例建立基线,说明如何生成、检查、验证和撤销直方图,并划清它不能替代索引的边界。420 收藏 -
数据库 · Redis | 2星期前 | Redis · 缓存 · 排行榜 · Sorted Set · 数据筛选 · redis 排行榜 BYSCORE Sorted Set ZRANGESTORE 窗口查询
Redis ZRANGESTORE 可以把 Sorted Set 的排名或分值窗口直接保存到新键,适合把排行榜切片、活动候选集和分页结果短暂落盘。本文用 redis-cli 核对 BYSCORE、REV、LIMIT、返回值与 TTL 边界,说明它和 ZRANGE、ZRANGESTORE 的使用取舍。420 收藏 -
MySQL 的 wait_timeout 控制非交互连接的空闲回收,但它不能替代连接池的生命周期管理。本文用连接池、会话变量和断线重连三个边界,给出可检查、可回滚的设置方法。420 收藏 -
Redis 内存达到 maxmemory 后,淘汰策略决定哪些键先离开。本文从缓存实例的内存告警现场出发,解释 allkeys-lru、volatile-lru、allkeys-lfu 和 noeviction 的适用边界,并给出命中率、淘汰计数与回滚核对方法。420 收藏 -
数据库 · MySQL | 2星期前 | MySQL · 执行计划 · 查询优化 · 统计信息 · 数据库性能 · explain MySQL 8.4 直方图统计 ANALYZE TABLE COLUMN_STATISTICS
当 WHERE 条件落在数据分布很不均匀的列上,MySQL 估算行数可能偏离实际。本文用 orders.status 这个可复现实例,说明什么时候建立直方图、如何选择桶数量,以及怎样用 COLUMN_STATISTICS 和 EXPLAIN 验收收益。420 收藏 -
数据库 · MySQL | 4星期前 | MySQL · 复制 · 主键 · InnoDB · 数据库迁移 · 数据库迁移 MySQL 8.4 sql_generate_invisible_primary_key 生成不可见主键 my_row_id
MySQL 8.4 可以为没有显式主键的 InnoDB 表生成不可见主键。本文用迁移排查场景说明如何确认 my_row_id、区分源库与副本行为,并给出备份、建表和回滚验收清单。419 收藏 -
MySQL 8.4 的 InnoDB 死锁发生后会自动选择一个事务回滚,但应用仍要识别错误并重试。本文用订单与库存更新场景还原锁等待环路,演示如何读取 SHOW ENGINE INNODB STATUS、开启 innodb_print_all_deadlocks、判断受害事务并验收安全重试。419 收藏 -
Redis 分布式锁最容易出问题的地方,不是 SET NX EX 本身,而是任务执行时间超过租约后如何续期、谁有资格释放以及续期失败后怎样停止业务写入。本文用单实例锁的最小模型拆开租约、看门狗、随机令牌和围栏令牌的边界,再给出可验收的续期与释放检查清单。419 收藏 -
MySQL 8.4 可以用 ALTER USER 为单个账户覆盖全局密码策略。本文用 password_history、password_reuse_interval 和 password_require_current 演示如何收敛影响范围,并核对 mysql.user 中的结果。418 收藏