Go语言技术文章
-
MySQL 容量盘点不能只看一个总数。本文用 INFORMATION_SCHEMA.TABLES 区分 DATA_LENGTH、INDEX_LENGTH 与 DATA_FREE,给出按库汇总的查询,并解释 InnoDB、分区表和磁盘文件统计之间的边界。175 收藏 -
MySQL CHECK TABLE 不是自动修复命令。本文从结果集、QUICK/FAST/CHANGED/EXTENDED 选项、FOR UPGRADE、分区表和 InnoDB 边界说明怎样判断表结构与索引状态,并安排后续处理。374 收藏 -
MySQL 分区表是否能真正提速,关键不只是分区数量,而是分区键、边界和 WHERE 条件能否让优化器排除无关分区。本文用日期范围表说明裁剪条件的设计方法、常见反例和迁移清单。154 收藏 -
MySQL LAG 按分区排序取前序行,LAST_VALUE 取当前窗口帧末行。本文用账户流水说明默认 RANGE 帧、显式全分区帧、ROWS 与重复排序值的边界,并给出选择上一条、分区末值和最大值的 SQL 写法。432 收藏 -
MySQL 窗口函数重复写分区和排序时,可以用 WINDOW 子句定义命名窗口并在多个 OVER 中复用。本文说明完整复用、追加排序与窗口帧的写法,以及同类属性冲突和最终展示排序的边界。232 收藏 -
SHOW CREATE TABLE 面向可复现的建表定义,INFORMATION_SCHEMA 面向可筛选的元数据查询。两者都描述同一张表,却可能在约束归类、字段顺序、隐藏列、行格式和默认值展示上不同。本文用 MySQL 8.4 的实际文档口径说明差异,并给出结构核对时的选择方法。287 收藏 -
MySQL CHECKSUM TABLE 可以同时返回两张表的数据摘要,用于备份前后、迁移后或同实例副本的快速差异筛查。本文说明 QUICK 与 EXTENDED 的适用边界、摘要相同与不同的正确解读,以及视图、版本和存储引擎带来的误区。233 收藏 -
MySQL 8.4 可用 ANALYZE TABLE UPDATE HISTOGRAM 的 WITH N BUCKETS 配置直方图桶数。本文说明 1 到 1024 的参数范围、桶数选择、COLUMN_STATISTICS 查看方法、采样率边界,以及 AUTO UPDATE 和 DROP HISTOGRAM 的使用时机。417 收藏 -
Go reflect.Value.Interface不能直接转换通过不可导出字段取得的值。本文区分CanInterface、CanAddr和CanSet,给出顶层公开字段收集示例,并说明无效值、浅拷贝与输出敏感数据的边界。180 收藏 -
Go testing.T.TempDir 会在测试及其子测试结束后自动清理。本文用 T.ArtifactDir、-artifacts 和失败前复制说明怎样保留关键测试现场,同时避免把临时目录误当成长期产物。209 收藏 -
Go base64.Encoding.AppendDecode 会把解码结果追加到目标切片,输入非法时仍可能返回部分数据和错误。本文用前缀切片、CorruptInputError 与增量输入边界说明如何安全处理。432 收藏 -
Go 的 reflect.DeepEqual 对数字沿用 ==,所以 NaN 不等于自身;同一切片、map 或指针又可能因身份捷径返回 true。本文拆开反射语义、unsafe 位模式比较和可维护的 NaN 业务判断。348 收藏 -
Golang · Go问答 | 1星期前 | 反射 · unsafe · 指针 · 垃圾回收 · Go问答 · Go 反射 垃圾回收 unsafe.Pointer uintptr runtime.KeepAlive Value.Pointer UnsafeAddr
Go 反射得到的 Pointer 或 UnsafeAddr 结果是 uintptr,不能像引用一样保活对象。本文区分立即转换、uintptr 暂存、runtime.KeepAlive 和低层调用参数四种场景,给出排查清单与安全边界。103 收藏 -
Go 反射修改字段时 CanSet 为 false,通常是值不可寻址、字段未导出或取错了 Value 层级。本文用一个小型反射检查器说明安全修复方式,并解释 unsafe 为什么不能直接把原 Value 变成可设置。463 收藏 -
本文解释 Go 泛型约束 comparable 的类型集合与设计边界,说明切片、map、函数和接口为何不能一概而论,并用泛型去重函数展示 Go 1.20 之后的约束满足规则与运行时风险。414 收藏