MySQL技术文章
-
MySQL JSON_TABLE 展开数组后出现重复行,先检查行路径是否过宽,再用父表主键和各层 FOR ORDINALITY 组成稳定关联键。本文用订单与嵌套数组示例区分真实重复、路径问题和后续 JOIN 造成的重复。406 收藏 -
MySQL 8.4 复制过滤看似配置正确却漏表时,重点核对 replicate-wild-do-table 的库表模式、语句中是否显式提到目标表、数据库级规则优先级和复制线程实际加载的配置。405 收藏 -
MySQL 深分页变慢,通常不是 LIMIT 取几十行的问题,而是 OFFSET 让服务器先定位并丢弃前面的大量记录。本文用稳定联合排序和游标条件改写下一页查询,并说明如何用 EXPLAIN 判断索引是否真正接住了边界。405 收藏 -
MySQL 递归 CTE 的路径列要在锚点查询中先确定足够宽的字符类型,再由递归成员追加节点名称;本文给出写法、长度估算和排查边界。405 收藏 -
围绕 MySQL JSON 数组成员检索,说明多值索引的 CAST 定义、查询匹配、EXPLAIN 验证,以及空数组、NULL、JSON null 和大数组边界。404 收藏 -
用 JSON_VALUE 的 RETURNING 明确结果类型,再分别处理路径缺失和类型转换异常,避免 JSON 标量在查询中被当成普通字符串。404 收藏 -
删除 MySQL 主表记录时遇到外键失败,原因可能是子表仍有引用、约束动作不是预期,或事务锁尚未释放。本文用订单与订单明细场景区分 RESTRICT、CASCADE 和锁等待,并给出可复现的检查命令。403 收藏 -
MySQL NOWAIT 不等待行锁,遇到争用会立即返回错误。本文从事务边界、索引范围和业务语义三方面设计快速降级,区分 SKIP LOCKED、普通读取与稍后重试。403 收藏 -
MySQL 连接顺序提示应按局部次序、前缀、后缀和全块固定选择。本文对比四种写法,给出别名与查询块示例,说明 EXPLAIN 观察方法以及 const 表、外连接和冲突提示的限制。403 收藏 -
MySQL JSON 列不能直接建立普通索引时,可以用生成列抽取稳定的标量值,再按正确类型建立索引。本文说明 JSON_EXTRACT、JSON_UNQUOTE、生成列和 EXPLAIN 之间的关系。401 收藏 -
从 InnoDB 死锁日志还原事务等待环,对应索引和 SQL 访问路径,并用统一锁顺序、缩小扫描范围与事务重试降低复发。401 收藏 -
MySQL InnoDB 的 READ COMMITTED 可减少部分范围操作的间隙锁影响,但不会消除同记录写冲突。本文通过范围插入与已有记录更新的两会话示例,说明一致性取舍、下一事务设置和回滚清理责任。400 收藏 -
MySQL 的 EXPLAIN 只估算执行计划,EXPLAIN ANALYZE 会真正运行语句并给出实际行数与耗时,因此测试时看起来更慢。本文用订单列表查询拆开两者的差异,说明如何读 actual time、如何避免把诊断开销误当业务耗时,并给出可回滚的线上验证边界。399 收藏 -
数据库 · MySQL | 2个月前 | MySQL · 权限 · 性能排查 · mysql SHOW PROCESSLIST performance_schema.threads PROCESS权限 会话诊断
线上慢 SQL 需要先确认它属于哪个连接、卡在哪个阶段,再决定是否查看执行计划或终止会话。本文用 SHOW PROCESSLIST 与 performance_schema.threads 还原连接 ID、线程状态、权限边界和复核步骤。399 收藏 -
MySQL ST_LineInterpolatePoint 按折线累计长度比例返回位置。本文用平面示例解释比例定位,并说明参数范围、坐标系、路线方向及端点精度约束。399 收藏