Go语言技术文章
-
MySQL UPDATE JOIN 不是写上 JOIN 就只会改一行,关联表存在重复键时,同一目标记录可能被多条源记录命中。本文用订单与客户标签的修复场景,演示先用 SELECT 验证关联唯一性,再在事务和影响行数检查下执行更新。262 收藏 -
订单清理任务执行 DELETE 时,真正拖慢速度的可能不是主表扫描,而是子表外键检查、级联删除和长事务锁范围。本文用订单与明细表的场景拆开执行路径,给出索引核对、分批删除和安全验收方法。262 收藏 -
Redis BITOP 可以把多个 Bitmap 按 AND、OR 或 XOR 合并成新的结果键,适合做用户分群和实时指标。本文用 redis-cli 拆开结果集长度、BITCOUNT 校验、O(N) 成本与长位图内存边界。262 收藏 -
数据库 · MySQL | 3星期前 | MySQL · 执行计划 · 慢查询 · MySQL EXPLAIN ANALYZE MySQL估算行数实际行数 MySQL执行计划耗时 MySQL慢查询诊断 MySQL TREE执行计划
从 EXPLAIN 基线到 EXPLAIN ANALYZE 实测,按节点对比估算行数、实际行数、迭代耗时和 loops,定位统计信息与访问路径偏差。262 收藏 -
Redis 内存使用量下降后,RSS 仍然居高不下,通常要把 allocator_frag_ratio、used_memory 与进程峰值放在一起看。本文从 INFO memory 的真实字段建立判断顺序,区分内存碎片、峰值残留和回收未完成,并给出验证与处理边界。261 收藏 -
MySQL 用 BINARY(16) 存 UUID 可以减少存储空间,但 UUID_TO_BIN 的 swap_flag 必须和 BIN_TO_UUID 使用同一约定。本文用真实 SQL 输出对比原始顺序、交换时间段和错误还原,说明版本 1 UUID 的适用边界。261 收藏 -
MySQL 死锁日志中的表名、索引名、锁模式和记录值需要结合事务语句才能还原到 SQL。本文用 SHOW ENGINE INNODB STATUS 与 performance_schema.data_locks 说明如何区分持有锁和等待锁,并从索引记录反推 WHERE 条件与事务顺序。261 收藏 -
Redis Count-Min Sketch 用有限空间估算事件频次,适合筛选高频项和观察趋势,但哈希碰撞会让结果偏大,低频值与精确结算不能直接采用。本文用 CMS 命令说明误差参数、查询方式和使用边界。260 收藏 -
商品详情页把库存、价格和活动状态合成一次 MGET 后,在 Redis Cluster 里突然报 CROSSSLOT,根因往往不是客户端,而是同一业务实体的 Key 没有落到同一个槽位。本文用 CLUSTER KEYSLOT、Hash Tag 和迁移期检查拆出一条可复查的修复路径。259 收藏 -
介绍 Redis XPENDING 的摘要和扩展查询,查看消费组中按消息 ID 最早的未确认消息,并区分最老 ID与空闲最久的 pending 记录。259 收藏 -
MySQL JSON_OVERLAPS 可以配合 InnoDB 多值索引优化 JSON 数组相交查询,但必须匹配索引表达式、数组类型和查询路径,并用 EXPLAIN 确认优化器实际选用了索引。255 收藏 -
Redis ZINTERCARD 只返回多个 Sorted Set 的交集数量,适合在推荐、活动资格和筛选接口中先做交集基数判断。本文用 redis-cli 拆开 ZINTERCARD 与 ZINTER、LIMIT 的差别,说明空 key、集群同槽和“大于阈值”判断的边界。254 收藏 -
MySQL 8.4 的 CTE 不一定会生成临时结果集。本文用 EXPLAIN 和 optimizer_switch 判断 CTE 是被合并还是物化,并说明 derived_merge、NO_MERGE 与多次引用的边界。253 收藏 -
Redis Hash 适合把一组相关属性放在同一个键下,但字段过大、更新频繁或过期时间不同,会让读取、内存和淘汰策略变得难以验收。本文用用户资料缓存场景拆解字段粒度、局部更新、拆键与 TTL 的取舍,并给出 redis-cli 检查方法。253 收藏 -
MySQL LOAD DATA 导入 TSV 时,字段内制表符要靠引号边界或反斜杠转义表达;本文给出两种写法,并用 HEX、CHAR(9) 和 SHOW WARNINGS 验证结果。253 收藏