-
用 MySQL roles 把 SELECT 权限集中到只读角色,绑定账号并设置默认角色,再通过 CURRENT_ROLE 和 SHOW GRANTS 复查最小权限边界。
-
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 读取采样比例,解释内存上限导致的页级采样,并给出调整预算、重新生成和结合估算偏差判断的方法。
-
结合目标列分布变化、直方图元数据与过滤估算判断重采集时机,给出 MySQL 8.4 查询和维护示例,说明手动、自动更新及刷新后计划不变的原因。
-
遇到 MySQL 锁等待超时,先区分 InnoDB 行锁、死锁和元数据锁,再用 sys.innodb_lock_waits 找到等待事务与阻塞事务。本文给出从连接 ID、事务年龄、锁定对象到处理动作的完整排查路径,并说明 ERROR 1205 只回滚当前语句时的边界。
-
MySQL STR_TO_DATE 适合解析日期和时间主体,但不要把 +08:00 直接当作 %z。本文用一个带数字时区偏移的字符串,演示如何拆分、解析、用 CONVERT_TZ 转成 UTC,并根据业务需要选择 DATETIME 或 TIMESTAMP。
-
MySQL INET6_ATON 会把合法的 IPv4 或 IPv6 文本转换为二进制值,IPv4 通常是 4 字节、IPv6 是 16 字节;无效地址或 NULL 输入会得到 NULL。本文用可直接改写的 SQL 说明输入边界、结果检查、VARBINARY 存储和 INET6_NTOA 反向展示。
-
MySQL JSON_SCHEMA_VALID 用 JSON Schema 检查文档结构和值域,本文演示 1、0、NULL、错误和 CHECK 约束的区别。
-
容器不会单独改变 ORDER BY 的语义,真正决定字符串比较和排序的是字符集与 collation。本文先核对 MySQL 容器的实际版本,再定位排序规则来源,用 COLLATE 显式控制结果,并处理混合排序规则和分页不稳定问题。