-
MySQL GIS 的 ST_Distance_Sphere 返回两个 Point 或 MultiPoint 在球面上的最小距离,单位是米。本文从经纬度顺序、默认半径和 SRID 入手,给出计算公里数、筛选半径内记录以及处理边界值的写法。
-
MySQL JSON_TABLE 的普通 PATH 列遇到缺失字段和 JSON null 都可能得到 SQL NULL。本文用 EXISTS PATH 保存字段存在性,再配合 ON EMPTY、ON ERROR 和类型列,区分缺失键、显式 JSON null 与错误输入。
-
MySQL recursive CTE 的深度限制要分三层处理:递归成员用业务条件停止,SESSION cte_max_recursion_depth 控制迭代层数,再用 LIMIT 和 MAX_EXECUTION_TIME 做结果规模与耗时兜底。
-
MySQL 在分组内取第二条记录,通常先用 ROW_NUMBER() OVER (PARTITION BY ... ORDER BY ...) 编号,再在外层筛选 rn = 2。本文还说明并列值时 ROW_NUMBER、RANK、DENSE_RANK 的区别,以及稳定排序和索引边界。
-
MySQL 使用 CREATE TEMPORARY TABLE 可以把中间结果限制在当前连接内,连接关闭后自动清理;但连接池归还不等于断开,复用连接前仍应显式 DROP。本文说明会话可见性、同名表遮蔽、权限和清理策略。
-
以 MySQL 8.4 同会话采集为例,说明 optimizer_trace 的设置与恢复、候选路径和代价的阅读方式,以及截断、权限、局部 chosen 标记和运行耗时的判断界限。
-
使用 MySQL mysqlbinlog 按时间范围导出增量日志时,关键是把日志文件列表和起止时间同时限定好。本文说明 --start-datetime、--stop-datetime 的边界语义、跨文件导出方式,以及远程读取和空间权限注意事项。
-
MySQL 直方图的 sampling-rate 可以说明生成统计信息时读取了多少数据。本文从 COLUMN_STATISTICS 读取采样比例,解释内存上限导致的页级采样,并给出调整预算、重新生成和结合估算偏差判断的方法。
-
Go 升级后 encoding/json.Decoder 的结果或错误发生变化时,不要先修改业务逻辑。本文按工具链、实现、Decoder 配置、输入字节和目标类型五层建立最小复现矩阵,说明如何区分真实语义差异与错误文本变化。
-
结合目标列分布变化、直方图元数据与过滤估算判断重采集时机,给出 MySQL 8.4 查询和维护示例,说明手动、自动更新及刷新后计划不变的原因。
-
Go 拼接带有路径参数的 URL 时,直接把原始字符串放进 Path 容易让斜杠、空格或问号改变路径结构。本文说明 net/url.PathEscape 的正确边界,并对比 QueryEscape、url.URL.Path、RawPath 和重复转义问题。
-
Go 的 net/mail.AddressParser.ParseList 可以把逗号分隔的邮箱地址解析为 []*mail.Address。本文说明普通地址、显示名、带引号逗号和解析错误的处理边界,并比较它与 Header.AddressList 的使用场景。
-
Decoder 不负责关闭底层 Reader。通过文件与响应体的所有权、单文件函数和长期引用,区分句柄泄漏、缓冲保留与业务结果增长,并给出读取示例和指标比较方法。
-
用 Go os.Root 和 Root.Open 把外部文件名限制在可信目录树内,说明 OpenFile、Root.FS、资源关闭与挂载边界。
-
Go 连续读取多个 PEM 块时,第二段找不到往往不是证书不存在,而是没有继续消费 pem.Decode 返回的 rest,或忽略了 PEM 必须从行首开始、在行尾结束的格式要求。