Go语言技术文章
-
MySQL 同一索引间隙中,不同位置的插入意向可以兼容,却可能共同等待第三方间隙保护。本文给出锁监控关联 SQL、三会话配方及字段解释,区分共同阻塞与互相阻塞。330 收藏 -
MySQL 的 JOIN_FIXED_ORDER 与 STRAIGHT_JOIN 都能固定连接顺序,但影响范围并不相同。本文比较两种写法对查询块、IN/EXISTS 半连接转换和排障验证的影响,并给出更稳妥的提示组合。347 收藏 -
解释为什么 UPDATE 的 EXPLAIN 计划看不到 Using index condition 仍可能正常:SELECT 用 ICP 减少完整行读取,而 UPDATE 必须读取并修改目标记录并维护相关索引。205 收藏 -
MySQL 联合索引缺少前导列条件时,普通 range 访问难以直接定位后缀范围。本文用单表覆盖索引示例说明 SKIP_SCAN 提示的写法、适用条件、EXPLAIN 观察点、optimizer_switch 边界和提示被忽略时的处理方式。197 收藏 -
MySQL 单表按组取最小值时,如何让 GROUP BY 列形成联合索引左前缀,并让 MIN 列紧邻其后。结合 SQL 示例说明 Loose Index Scan 条件、计划标记与改造边界。203 收藏 -
Go encoding/csv 解析失败时,errors.As 可以取出 ParseError 的 StartLine、Line、Column 和底层 Err。本文用多行字段示例说明行列含义,并区分引号错误、字段数错误与业务定位。203 收藏 -
Go csv.Reader 的 LazyQuotes 会放宽普通字段中的裸引号和带引号字段中的非双写引号,但不会自动修复字段数、分隔符或业务数据质量。本文按兼容入口、严格边界和回滚路径说明如何安全使用。466 收藏 -
使用 Go crypto/x509 校验证书链时,VerifyOptions.KeyUsages 为空默认按服务器用途处理;为了让配置意图更清楚,可以显式设置 ExtKeyUsageServerAuth,并配合 Roots、Intermediates 和 DNSName 分层排查失败原因。163 收藏 -
Go csv.Reader 的 FieldsPerRecord 为零时会由首条记录确定后续列数。本文比较零值、正数和负数,解释表头、空字段与 ErrFieldCount,并给出读取策略迁移示例。145 收藏 -
解释 Go tls.Config.Clone 的浅克隆边界:顶层字段重新赋值不会回写原配置,但切片、映射和会话票据相关状态可能共享,并给出安全派生配置的写法。455 收藏 -
Go net.SplitHostPort 解析带端口的 IPv6 地址时,方括号用于标出主机边界。本文解释 too many colons、missing port、zone 和 JoinHostPort 的关系,帮助你正确生成与拆分 host:port。157 收藏 -
Go regexp.FindAllStringIndex 返回非重叠区间是设计行为,不是漏查。本文用 aba/ababa 说明左到右的匹配推进、n 参数的真实作用和 UTF-8 字节下标,并给出按 rune 起点推进的外部游标方案来收集重叠结果。341 收藏 -
Go 字符串出现非法 UTF-8 后,如何用 ToValidUTF8 按连续片段替换、保留合法 U+FFFD,并约束替换字符串和原始数据保留策略。226 收藏 -
Go container/heap 中已有元素修改优先级后,应先更新对象字段,再用对象当前 index 调用 heap.Fix;本文解释 Swap 的索引维护、Fix 与 Remove/Push/Init 的边界,以及如何固定这些一致性风险。254 收藏 -
Go container/list 的 Remove 会返回被删除节点的 Value。本文说明 any 类型断言、删除后的节点边界,以及遍历删除时保存 Next 的写法。353 收藏