MySQL技术文章
-
MySQL 会在派生表合并与物化之间做选择,但包含窗口函数的派生表不能走合并路径。本文用订单排名查询拆开 derived_merge、内部临时表、过滤位置与 EXPLAIN 验证边界。283 收藏 -
通过会话级 optimizer_switch 对比 use_invisible_indexes 开关,验证不可见索引是否进入 MySQL 查询计划,并给出恢复设置与上线判断边界。283 收藏 -
旧表字符集迁移不能只改一个默认值。本文以 utf8mb4 为目标,说明如何盘点表列与连接设置、选择排序规则、执行 ALTER TABLE、处理显式列定义并安排迁移后的核对与回滚。281 收藏 -
MySQL MAKE_SET 按位掩码与标签位置生成逗号字符串。通过通知渠道示例说明查询写法、零值与缺失值、NULL占位和未知位处理,避免调整参数顺序改变历史数据含义。281 收藏 -
MySQL 的 SAVEPOINT 可以把一次事务切成可回退的局部边界。本文用一个 InnoDB 订单场景说明如何保留前置写入、撤销保存点后的可选写入,并在 ROLLBACK TO SAVEPOINT 后继续提交。281 收藏 -
同一条 MySQL 查询使用预编译参数后可能出现不同执行计划。本文从参数类型、隐式转换、索引可用性和 EXPLAIN 复核入手,给出可回归的排查与改写方法。280 收藏 -
MySQL 存储程序可用裸 RESIGNAL 保留原始条件,用 GET STACKED DIAGNOSTICS 读取原始诊断。本文通过受控异常比较状态、错误号与消息,说明定向改写、额外语句、日志失败和事务归属的边界。280 收藏 -
MySQL JSON_OVERLAPS 用于判断两个 JSON 文档是否存在共同内容。本文以数组交集为主线,说明它与 JSON_CONTAINS 的区别,并补充对象、标量、NULL、类型边界和多值索引方向。279 收藏 -
MySQL ANSI_QUOTES 会把双引号内容解析为标识符。本文区分名称与字符串,说明会话配置、同名列误读风险及迁移写法,并提供保留原模式的临时表对照示例。279 收藏 -
MySQL ST_NumInteriorRing 用于返回 Polygon 内部环的数量,也就是多边形孔洞数。本文从最小 WKT 示例讲清外环与内环、1-based 编号、复数别名、NULL 和错误输入边界,并说明如何读取指定孔洞环。279 收藏 -
MySQL 隐形索引适合用来验证一个索引是否仍被优化器需要。本文以订单查询为例,演示如何将索引设为不可见、用 EXPLAIN 对比计划、观察线上指标,并在结果不理想时快速恢复。278 收藏 -
MySQL 8.4 的 INSERT 语法没有通用的 RETURNING 子句。本文用订单写入场景解释为什么不能把 PostgreSQL 式写法直接搬过来,并给出 LAST_INSERT_ID、事务内 SELECT 和多行写入的核对边界。278 收藏 -
MySQL 的 CHECK 约束会在写入时按当前会话的 sql_mode 计算,迁移脚本、应用连接和批量导入若模式不一致,可能得到不同结果。本文从现象、表达式边界和连接初始化三处说明如何统一执行环境。278 收藏 -
数据库 · MySQL | 2个月前 | MySQL · 索引 · 数据库 · 执行计划 · 性能排查 · 执行计划 cost_info MySQL EXPLAIN FORMAT=JSON rows_examined_per_scan 索引选择
用一个订单查询拆解 MySQL EXPLAIN FORMAT=JSON:怎么看 cost_info 和 rows_examined_per_scan,如何把估算行数、过滤条件与索引选择对上,避免只盯着 type=ALL 下结论。276 收藏 -
用原创SQL示例说明MySQL STATEMENT_DIGEST_TEXT的规范化方法,对比正则替换、SQL格式化与摘要哈希,解释工具记录设计、解析失败和长SQL截断限制。276 收藏