MySQL技术文章
-
数据库 · MySQL | 1星期前 | MySQL · JSON · 执行计划 · 查询优化 · mysql explain json_extract 执行计划 用户变量 FORMAT=JSON INTO
MySQL 8.4 可以用 EXPLAIN FORMAT=JSON INTO 把执行计划保存到当前会话的用户变量,再交给 JSON_EXTRACT、JSON_UNQUOTE 和 JSON_CONTAINS_PATH 读取。本文用原创 SQL 说明语法顺序、JSON path、字符串类型、可解释语句范围与会话边界。494 收藏 -
结合目标列分布变化、直方图元数据与过滤估算判断重采集时机,给出 MySQL 8.4 查询和维护示例,说明手动、自动更新及刷新后计划不变的原因。493 收藏 -
用 HEX(WEIGHT_STRING(...)) 观察 MySQL 排序规则生成的二进制权重,区分字符字符串与二进制字符串,并掌握 AS CHAR、AS BINARY 的长度边界。492 收藏 -
使用MySQL递归CTE展开目录,给出路径成员防环与只按节点id去重的两种示例,说明字段宽度、父节点索引、深度上限及批处理失败边界。492 收藏 -
使用 MySQL JSON_TABLE() 配合 $[*] 将 JSON 数组展开为多行,讲清 PATH、FOR ORDINALITY、NESTED PATH、ON EMPTY 和 ON ERROR 的写法与边界。490 收藏 -
MySQL 大表使用 LIMIT offset, size 翻到后页时,会先扫描并丢弃大量记录。本文用稳定排序、联合索引和 keyset pagination 改造查询,并说明倒序、重复时间戳和末页的处理方式。490 收藏 -
MySQL GTID_EXECUTED 是事务集合,不是单一整数位点。本文用源端与副本端的 Executed_Gtid_Set、Retrieved_Gtid_Set、GTID_SUBSET 和 GTID_SUBTRACT 判断复制是否推进,并定位仍未应用的事务范围。490 收藏 -
MySQL C API 连接建立后,可以用 mysql_set_server_option 动态开启多语句。本文说明返回值判断、结果集与影响行数处理、mysql_next_result 循环、关闭开关,以及它与 CLIENT_MULTI_STATEMENTS 和 CLIENT_MULTI_RESULTS 的边界。490 收藏 -
MySQL 9.4 将 back_log 默认值提高到 10000,但它只负责短时连接请求的监听队列,不等于并发连接容量。本文从 back_log、max_connections 与 Linux socket 队列上限三层说明如何核对。488 收藏 -
MySQL GROUP_CONCAT 的稳定结果取决于函数内部的 ORDER BY、文本 COLLATE、并列键和长度上限。本文用标签聚合示例说明排序、去重、NULL、分隔符与 group_concat_max_len 的实际边界。488 收藏 -
说明 MySQL Hash Join 的构建端、join_buffer_size、多个连接缓冲和并发放大关系,并给出执行计划判断、磁盘溢写识别与参数调整建议。488 收藏 -
MySQL 复制延迟不能只看一个时间差。本文按 replica_parallel_workers、复制通道状态、协调线程和工作线程逐层分析,帮助定位并行度不足、单线程拖尾与重试错误。488 收藏 -
MySQL JSON_VALUE 默认会让路径不存在和 JSON null 都表现为 SQL NULL。本文用三类输入基线、ON EMPTY、ON ERROR 与 JSON_CONTAINS_PATH 说明如何区分 missing、json-null、present,并处理类型转换错误。488 收藏 -
本文用 MySQL ST_FrechetDistance 比较两条 LineString 轨迹的离散形状差异,说明显式顶点、SRS、单位参数、采样密度以及空值和异常输入的处理边界。488 收藏 -
MySQL 在分组内取第二条记录,通常先用 ROW_NUMBER() OVER (PARTITION BY ... ORDER BY ...) 编号,再在外层筛选 rn = 2。本文还说明并列值时 ROW_NUMBER、RANK、DENSE_RANK 的区别,以及稳定排序和索引边界。488 收藏