Go语言技术文章
-
Redis 大 Key 不一定要改业务接口才能治理。本文从测量边界开始,演示如何按字段组拆成多个 Hash,用读取门面保持调用方式不变,再通过双写、回填、切换和旧 Key 下线完成迁移。207 收藏 -
Redis RDB 与 AOF 的选择应围绕数据资产、允许丢失窗口和恢复耗时展开。本文比较快照、同步策略与重写边界,说明隔离历史备份为何不可替代,并给出只读检查和恢复演练思路。119 收藏 -
Redis AOF 重写期间延迟升高时,先用 INFO persistence 确认窗口,再结合 COW、fork、fsync 排队和延迟事件区分资源竞争与命令本身变慢。134 收藏 -
Redis Cluster 多键命令报 CROSSSLOT,通常是参与命令的键被分到了不同 hash slot。本文介绍槽位检查、hash tag 设计和生产边界。335 收藏 -
Redis Streams 消费者组出现 Pending 积压时,先用 XPENDING 区分总量、消费者和空闲时间,再用 XAUTOCLAIM 认领失联消费者的消息,最后以幂等处理和 XACK 收口。458 收藏 -
梳理 Redis Streams 使用 XGROUP CREATE 创建消费者组时 0-0、$ 和 MKSTREAM 的选择,说明历史回放、实时接入、幂等初始化与结果确认的边界。445 收藏 -
MySQL 字符集迁移到 utf8mb4 时,索引长度可能因每字符最大字节数、联合索引、行格式和页大小发生变化。本文给出迁移前盘点、索引字节估算、方案选择和隔离副本复查方法。156 收藏 -
用 MySQL Performance Schema 的语句摘要表按总耗时、平均耗时、调用次数和样例 SQL 找到最值得优先处理的慢 SQL,并识别摘要容量不足造成的 NULL 汇总行。150 收藏 -
MySQL 连接池耗尽时不要先盲目调大 max_connections。本文从 Threads_connected、Threads_running、SHOW FULL PROCESSLIST 和 performance_schema.threads 入手,区分连接未释放、慢查询锁等待与瞬时并发峰值。369 收藏 -
MySQL GTID 迁移要让备份数据与事务水位对应,不能用补写 GTID 元数据代替恢复。本文用集合比较示例识别缺失事务、已清理历史及额外事务,并解释自动定位与切换放行条件。285 收藏 -
MySQL 复制延迟排查不能只看 Seconds_Behind_Source。本文用 SHOW REPLICA STATUS 对照 IO 接收线程和 SQL 应用线程,区分网络接收慢、中继日志堆积与应用报错。254 收藏 -
MySQL 分区键不能只看字段是否有索引,还要同时看查询能否触发分区裁剪、数据是否按时间维护,以及主键和唯一键是否包含分区列。本文用 RANGE、COLUMNS、LIST、HASH 和 KEY 对比一个可落地的选择顺序。495 收藏 -
MySQL 在线 DDL 仍可能被元数据锁阻塞。本文用 sys.schema_table_lock_waits 和 performance_schema.metadata_locks 定位持锁事务,并通过 lock_wait_timeout、ALGORITHM 和 LOCK 设定可控的变更失败边界。216 收藏 -
还原 MySQL 死锁等待关系,需要逐项对应事务、持有锁、请求锁和冲突资源,不能只看当前 SQL。本文给出关系表和 Performance Schema 查询,并解释实时快照、间隙锁及重试边界。387 收藏 -
数据库 · MySQL | 4天前 | MySQL · 事务 · InnoDB · Serializable READ COMMITTED REPEATABLE READ MySQL事务隔离级别 一致性读 InnoDB快照
从 InnoDB 快照建立时机入手,比较四种事务隔离级别对一致性读、并发提交和锁定读的影响,并给出两个会话的最小验证模板。317 收藏