Go语言技术文章
-
Redis Hash 适合平面字段和字段级读写,Redis JSON 适合嵌套对象、数组和路径级访问。本文从数据形状、更新粒度、查询能力、内存成本与生产迁移边界说明两者如何选择。277 收藏 -
数据库 · MySQL | 2个月前 | MySQL · 索引 · 数据库 · 执行计划 · 性能排查 · 执行计划 cost_info MySQL EXPLAIN FORMAT=JSON rows_examined_per_scan 索引选择
用一个订单查询拆解 MySQL EXPLAIN FORMAT=JSON:怎么看 cost_info 和 rows_examined_per_scan,如何把估算行数、过滤条件与索引选择对上,避免只盯着 type=ALL 下结论。276 收藏 -
MySQL InnoDB 事务死锁发生后,不能只看一条报错就改重试。本文用订单与库存更新场景还原锁等待环路,演示如何读取 SHOW ENGINE INNODB STATUS、关联 performance_schema、判断受害事务并验证修复是否真正降低死锁风险。275 收藏 -
Redis 连接池耗尽时,报错常常出现在业务命令而不是建连阶段。本文用 go-redis 的两个连接槽复现等待超时,再结合 CLIENT LIST、PoolStats 和复用检查确定该调池大小还是缩短占用时间。275 收藏 -
MySQL 递归 CTE 需要同时防止层级过深与父子路径成环。本文给出携带 depth 和分隔 path 的安全查询模板,并补充递归上限、查询超时、终止查询、回滚和复盘清单。275 收藏 -
用 ROW_NUMBER 按业务字段分组、按时间和唯一键倒序,再在外层筛选 rn=1,即可取得每组最新完整记录。本文给出 CTE 示例,并解释并列时间、状态过滤位置及性能边界。275 收藏 -
Redis ACL 可以用命令类别减少逐条授权的维护成本,但命令权限不等于键和频道权限。本文从只读缓存账号出发,比较类别授权、单命令授权与排除式授权,给出可复查的最小权限组合。275 收藏 -
MySQL WITH RECURSIVE 查询组织层级时,递归成员必须用叶子节点条件自然停止,再用 LIMIT、cte_max_recursion_depth 和执行超时做资源保护。本文用员工上下级关系说明各层终止条件的职责。274 收藏 -
按月增长的订单或日志表,不必每次归档都全表搬运。本文用 MySQL 8.4 RANGE 分区示例,说明分区键设计、分区裁剪检查、按月新增与删除边界,以及上线前的回滚和验收方法。273 收藏 -
用一个可复查的导出命令讲清 mysqldump --single-transaction 的一致性边界:InnoDB 为什么能在不锁表的情况下读取同一快照,MyISAM 与 DDL 操作又会带来哪些风险。273 收藏 -
Redis EXPIRE 再次续期会直接替换旧 TTL。本文用会话滑动过期场景解释默认语义,并比较 NX、XX、GT、LT 的使用边界与排查方法。273 收藏 -
Redis BITFIELD 可以把一个 String 按 bit offset 切成多个不同宽度的整数位段。本文围绕设备状态和小型计数器,说明 GET、SET、INCRBY 的布局、组合调用、返回顺序与偏移维护边界。273 收藏 -
RedisJSON 数值数组如何在精度和内存之间取舍?本文结合 FPHA 类型、数组扩容与 JSON.DEBUG MEMORY,给出可执行的选择和测量方法。272 收藏 -
从执行计划异常出发,说明如何用 ANALYZE TABLE 刷新 InnoDB 索引统计信息,并区分执行状态、统计变化与查询计划变化。272 收藏 -
在检测序列断档方面,LAG()无疑是最为可靠的,它仅仅依赖于相邻行ID的差值,而不预设数据是连续的,也不假定起始值。LEAD()则更适合用于定位缺口区间。ROW_NUMBER()可就不适合用于真实断档的检测了,因为它生成的是序号,而不是真实的ID。此外,对于空表、NULL以及边界值,都需要进行显式的271 收藏