MySQL技术文章
-
用 SESSION 级 foreign_key_checks 安排 MySQL 外键迁移,保存原值、完成导入并用孤儿数据查询确认恢复结果。318 收藏 -
MySQL 事件调度器适合执行清理、汇总等周期任务,但安全性不只取决于 EVERY 语句。本文用一个分批清理示例,说明 event_scheduler、EVENT 权限、DEFINER、批量上限、审计记录、INFORMATION_SCHEMA.EVENTS 和副本禁用边界。159 收藏 -
MySQL LOAD DATA 导入包含换行的字段时,正确配置字段分隔符、引号包裹、转义字符和行结束符,并用警告与抽样查询确认数据没有错行。181 收藏 -
MySQL histogram 不会替代索引,它解决的是优化器看不清列值分布、导致 rows 估算失真的问题。本文以订单状态列为例,演示怎样建立和查看 histogram,再用 EXPLAIN 判断统计信息的作用,并说明 bucket、采样率、自动更新和适用边界。386 收藏 -
从 InnoDB 死锁报告中的事务 ID、MySQL thread id、SQL 和锁对象入手,结合 Performance Schema 与应用日志,把死锁日志对应到具体连接和业务事务。185 收藏 -
澄清多表UPDATE目标行只更新一次的规则,给出按完整业务键聚合和确定性选择最新记录的SQL,区分来源冲突、任务重试与并发封批问题。342 收藏 -
MySQL 的 utf8mb4 只决定字符如何编码,大小写是否视为相等由排序规则 collation 决定。本文用 _ci、_cs、_bin、_ai、_as 后缀拆解选择逻辑,再说明默认规则、列级定义、查询级 COLLATE、唯一索引和 PAD 属性的边界。232 收藏 -
MySQL 分区表是否真的减少了扫描范围,不能只看查询能否返回结果,而要看 EXPLAIN 的 partitions 列。本文用 RANGE 分区示例说明如何对照分区定义、WHERE 条件和执行计划,区分命中一个分区、命中多个目标分区与没有发生分区裁剪。347 收藏 -
MySQL 存储过程需要把参数校验失败和底层异常清楚地交给调用方时,可以用 SIGNAL 设置 SQLSTATE、MESSAGE_TEXT 与 MYSQL_ERRNO。本文从最小示例、handler、诊断区和排查边界说明怎样建立稳定的错误契约。347 收藏 -
数据库 · MySQL | 2星期前 | MySQL · JSON · 数据库 · 查询优化 · mysql 索引 explain JSON json_extract 生成列 JSON_VALUE JSON_UNQUOTE
MySQL 的 JSON 列不能直接按普通列方式建立索引。本文以订单扩展属性为例,把稳定的 JSON 路径提取为有明确类型的生成列,再建立二级索引,并用 EXPLAIN 判断表达式、结果类型和实际索引选择是否匹配。475 收藏 -
MySQL GROUP_CONCAT 结果突然变短时,先检查 group_concat_max_len,再按字节估算选择 SESSION、GLOBAL 或单条语句设置,并同时留意 max_allowed_packet、排序、分隔符和 NULL 行为。443 收藏 -
用 MySQL sys.schema_index_statistics 按读取延迟和读取行数定位高开销索引,解释字段含义、排序方法、写入影响以及 Performance Schema 统计边界。372 收藏 -
MySQL 索引条件下推是否生效,不能只看查询用了索引。本文用 EXPLAIN 的 Extra、EXPLAIN ANALYZE 的 TREE 输出和 optimizer_switch,说明如何确认 Using index condition,并排查没有出现它的常见原因。188 收藏 -
MySQL JSON_TABLE 展开嵌套文档时,关键是把根数组、相对 NESTED PATH、缺失子数组和 FOR ORDINALITY 分开处理。本文用一份多层 JSON 说明如何稳定展开并避免行数误判。165 收藏 -
GeoJSON 只是查询输入格式,真正参与空间索引的是带 SRID 约束的 GEOMETRY 列。本文用 MySQL 8.4 说明如何转换 GeoJSON、创建 SPATIAL INDEX,并用 MBR 候选条件配合精确空间关系完成查询。334 收藏