MySQL技术文章
-
用 MySQL JSON_TYPE 判断对象、数组和基础标量,结合 JSON_EXTRACT、CASE 与 BEFORE 触发器完成查询分流和写入时分类,并说明 SQL NULL、JSON null 与无效 JSON 的边界。116 收藏 -
MySQL JSON_REMOVE 支持在一次表达式中传入多个 JSON path。本文用嵌套对象示例说明路径从左到右求值、缺失成员的处理方式、父对象与叶子成员的删除边界,以及生产更新前的预览、权限和回滚检查。312 收藏 -
数据库 · MySQL | 1星期前 | 并发 · MySQL · 数据库 · InnoDB · mysql innodb AUTO_INCREMENT innodb_autoinc_lock_mode
MySQL InnoDB 的 interleaved 自增锁模式允许多个 INSERT-like 语句并发分配编号。本文区分语句交错、bulk insert 预分配和事务回滚造成的间隔,并给出复制模式下的选择依据。295 收藏 -
MySQL 同一索引间隙中,不同位置的插入意向可以兼容,却可能共同等待第三方间隙保护。本文给出锁监控关联 SQL、三会话配方及字段解释,区分共同阻塞与互相阻塞。330 收藏 -
MySQL 的 JOIN_FIXED_ORDER 与 STRAIGHT_JOIN 都能固定连接顺序,但影响范围并不相同。本文比较两种写法对查询块、IN/EXISTS 半连接转换和排障验证的影响,并给出更稳妥的提示组合。347 收藏 -
解释为什么 UPDATE 的 EXPLAIN 计划看不到 Using index condition 仍可能正常:SELECT 用 ICP 减少完整行读取,而 UPDATE 必须读取并修改目标记录并维护相关索引。205 收藏 -
MySQL 联合索引缺少前导列条件时,普通 range 访问难以直接定位后缀范围。本文用单表覆盖索引示例说明 SKIP_SCAN 提示的写法、适用条件、EXPLAIN 观察点、optimizer_switch 边界和提示被忽略时的处理方式。197 收藏 -
MySQL 单表按组取最小值时,如何让 GROUP BY 列形成联合索引左前缀,并让 MIN 列紧邻其后。结合 SQL 示例说明 Loose Index Scan 条件、计划标记与改造边界。203 收藏 -
通过 performance_schema.threads 找到 THREAD_ID,再使用 SET RESOURCE GROUP 将指定线程切换到目标资源组,并掌握权限、线程类型和本地生效范围。291 收藏 -
MySQL Clone Plugin 可以把 donor 实例的数据复制到 recipient 测试实例。本文按准备条件、权限、白名单、CLONE INSTANCE、重启与收尾边界说明完整做法,重点提醒默认目录会清理接收端用户数据。260 收藏 -
用 MySQL roles 把 SELECT 权限集中到只读角色,绑定账号并设置默认角色,再通过 CURRENT_ROLE 和 SHOW GRANTS 复查最小权限边界。368 收藏 -
MySQL GIS 的 ST_Distance_Sphere 返回两个 Point 或 MultiPoint 在球面上的最小距离,单位是米。本文从经纬度顺序、默认半径和 SRID 入手,给出计算公里数、筛选半径内记录以及处理边界值的写法。148 收藏 -
MySQL JSON_TABLE 的普通 PATH 列遇到缺失字段和 JSON null 都可能得到 SQL NULL。本文用 EXISTS PATH 保存字段存在性,再配合 ON EMPTY、ON ERROR 和类型列,区分缺失键、显式 JSON null 与错误输入。102 收藏 -
MySQL recursive CTE 的深度限制要分三层处理:递归成员用业务条件停止,SESSION cte_max_recursion_depth 控制迭代层数,再用 LIMIT 和 MAX_EXECUTION_TIME 做结果规模与耗时兜底。137 收藏 -
MySQL 在分组内取第二条记录,通常先用 ROW_NUMBER() OVER (PARTITION BY ... ORDER BY ...) 编号,再在外层筛选 rn = 2。本文还说明并列值时 ROW_NUMBER、RANK、DENSE_RANK 的区别,以及稳定排序和索引边界。488 收藏