Go语言技术文章
-
Redis 的 LASTSAVE 只能说明最近一次成功写盘时间。本文用 BGSAVE、INFO persistence 和时间戳变化,判断 RDB 快照到底是成功、进行中还是失败。269 收藏 -
把连接字符集改成 utf8mb4 不会自动改变表和索引,但列字符集迁移可能让索引前缀的字节数重新触及 InnoDB 上限。本文给出区分连接设置、核算前缀和安全迁移的检查方法。344 收藏 -
Redis AOF 重写时磁盘占用变大,通常不是数据瞬间翻倍,而是旧 AOF、新 base 文件和重写期间新增写入同时存在。本文用 Redis 7 多段 AOF 结构、INFO persistence、du 与 df 命令定位空间峰值,并给出生产容量检查清单。191 收藏 -
MySQL LOAD DATA 导入含换行文本时,要分清字段内的\n转义、CSV 引号包围的真实换行,以及记录本身的行结束符。本文按源文件形态说明 TERMINATED BY、ENCLOSED BY、ESCAPED BY 和 LOCAL 的边界,并给出导入后的核对清单。284 收藏 -
Redis 连接池耗尽不等于 Redis 慢。本文用 go-redis PoolStats、SLOWLOG GET 和 CLIENT LIST 区分慢命令、池等待与请求生命周期未结束,并给出修复顺序。378 收藏 -
判断 MySQL 派生表物化后是否溢出磁盘,不能只看 Created_tmp_disk_tables。本文从 EXPLAIN、tmp_table_size、TempTable 资源、Performance Schema 和 InnoDB 临时表空间五个证据点说明如何定位。126 收藏 -
Redis Pub/Sub 采用至多一次投递,订阅端断线期间消息不会保留。本文用最小命令和排查表说明何时继续用 Pub/Sub,何时切换 Streams 或采用混合方案。363 收藏 -
MySQL InnoDB 改用 READ COMMITTED 后,主要减少非唯一索引范围上的间隙锁与不匹配行的锁保留;普通 SELECT、锁定读、外键检查和重复键检查仍需分开判断。284 收藏 -
Redis SCAN 不是并发安全的静态快照:从扫描开始到结束始终存在的键会被完整迭代返回,但扫描期间被删除、新增或重新加入的键可能返回也可能不返回。本文给出重复返回、COUNT、UNLINK 和二次复查的处理方式。323 收藏 -
MySQL 联合索引缺少中间列时,后缀列通常不能像连续最左前缀一样直接定位,但可能参与索引条件检查。本文用执行计划区分查找、过滤与 Skip Scan,并给出索引调整判断方法。358 收藏 -
解释 Redis SET NX EX 在键不存在、已有 TTL 和条件更新场景下的真实行为,区分 NX 条件写入、EX 重置租期与 KEEPTTL 保留剩余 TTL,并给出锁初始化、更新和排查命令。128 收藏 -
从递归终止条件、循环数据和 cte_max_recursion_depth 三个方向排查 MySQL CTE 超过默认深度的问题,并给出可回滚的保护配置。270 收藏 -
Redis Hash 适合把对象拆成多个 field。本文用 HSET 和客户端示例说明如何只更新一个子键,减少大对象读写,并处理返回值、并发覆盖与过期时间边界。414 收藏 -
MySQL 使用 ROW_NUMBER() 遇到并列排序值时,不能依赖数据库自行决定顺序;为窗口 ORDER BY 补上唯一键,并同步外层排序,才能让编号、Top N 和分页结果稳定可复现。418 收藏 -
Redis ZRANGE 遇到相同 score 时不会按写入时间排序,而是继续比较 member。本文用排行榜和分页场景说明字典序规则,并给出可复现的二级排序设计。322 收藏