Go语言技术文章
-
介绍如何使用 ANALYZE TABLE 更新 MySQL histogram,并从 COLUMN_STATISTICS 确认桶数、采样率和自动更新策略,整个过程不修改表结构。386 收藏 -
用 MySQL LAG 按稳定日期顺序取上一条记录,配合 PARTITION BY、偏移量和 default 处理分区首行,再用 DATEDIFF 比较相邻日期。166 收藏 -
MySQL NTILE 按排序把结果行尽量均匀地分入固定桶。通过十行样例说明余数、并列值、分区和外层筛选,并比较人数分桶与固定阈值分档的适用条件。487 收藏 -
MySQL EXPLAIN ANALYZE 会实际执行目标语句。本文用 KILL QUERY、SHOW PROCESSLIST 和权限边界说明如何安全停止长时间分析,并确认连接是否仍可复用。134 收藏 -
围绕 WHERE 等值前缀、混合 ASC/DESC 排序和稳定分页,说明 MySQL 降序索引的复合列顺序、创建方式与 EXPLAIN 判断方法。434 收藏 -
MySQL histogram 通过单列分布改善偏斜数据的过滤估算。用隔离样例说明桶、采样、手动维护及计划对照,区分估算准确与实际提速。287 收藏 -
数据库 · MySQL | 3星期前 | MySQL · JSON · 数据库 · 数据校验 · mysql JSON Schema JSON_SCHEMA_VALID JSON 校验 CHECK 约束
MySQL 的 JSON_SCHEMA_VALID 返回 1、0、NULL 和错误分别代表什么?本文用原创 SQL 示例拆开 required、type、范围校验与 CHECK 约束的边界,并说明如何用验证报告定位失败字段。180 收藏 -
用 MySQL JSON_STORAGE_SIZE 读取 JSON 文档的二进制存储字节数,区分 JSON 文本长度、JSON 列原始空间与部分更新后的可复用空间,并说明 NULL、非法 JSON 和整表磁盘估算的边界。330 收藏 -
Go build 与 go vet 结果不同不一定是工具链异常。本文通过一个格式参数错误的小模块,区分编译、vet 和测试职责,给出修复代码及本地与 CI 的环境对齐方法。444 收藏 -
go list 在 replace 场景下显示的模块路径与本地目录不一致时,先用 -m -json 区分 Path、Replace、Dir 和 GoMod,再检查 go.mod、go.work 及执行目录,按证据修正替换关系。324 收藏 -
go test 看到旧输出或失败用例像是没有重新执行时,先识别 cached 标记,再用 -count=1、go clean -testcache 和 GODEBUG 判断到底是测试结果缓存、构建缓存还是 vet 阻止了运行。403 收藏 -
Go encoding/csv 读取 CSV 时遇到字段数量变化,通常是 FieldsPerRecord 的契约与实际文件不一致。本文区分严格定宽、首行定宽和允许变长三种模式,并给出带行号定位的处理方式。473 收藏 -
Go 使用 RawStdEncoding 解码时出现填充错误,通常不是数据必须补等号,而是发送方和接收方采用了不同的 Base64 约定。本文用最小示例区分 StdEncoding 与 RawStdEncoding,并给出错误定位和测试边界。155 收藏 -
Go Reader 的字节分块不保证 UTF-8 字符边界。本文给出持续使用 bufio.Reader.ReadRune 的完整示例,区分半个编码、非法字节、合法 U+FFFD 与流末尾截断,并说明批量解码的状态约定。318 收藏 -
Go 的 AddDate 按 Location 的日历规则加一天,DST 切换日可能对应 23 小时或 25 小时;如果业务要固定时长,应使用 Add。本文梳理时区、缺失时间、重复时间和比较持久化边界。241 收藏