MySQL技术文章
-
MySQL JSON 列不能直接建立普通索引时,可以用生成列抽取稳定的标量值,再按正确类型建立索引。本文说明 JSON_EXTRACT、JSON_UNQUOTE、生成列和 EXPLAIN 之间的关系。401 收藏 -
MySQL 的 EXPLAIN 只估算执行计划,EXPLAIN ANALYZE 会真正运行语句并给出实际行数与耗时,因此测试时看起来更慢。本文用订单列表查询拆开两者的差异,说明如何读 actual time、如何避免把诊断开销误当业务耗时,并给出可回滚的线上验证边界。399 收藏 -
数据库 · MySQL | 1个月前 | MySQL · 权限 · 性能排查 · mysql SHOW PROCESSLIST performance_schema.threads PROCESS权限 会话诊断
线上慢 SQL 需要先确认它属于哪个连接、卡在哪个阶段,再决定是否查看执行计划或终止会话。本文用 SHOW PROCESSLIST 与 performance_schema.threads 还原连接 ID、线程状态、权限边界和复核步骤。399 收藏 -
两张结构一致的订单表合并查询时,UNION ALL 与 UNION 的差别不只是有没有重复数据,还会影响去重、临时表和排序路径。本文用可复现实验拆开两者的边界,并给出选择与验收方法。395 收藏 -
用 MySQL 窗口函数按分组生成稳定行号,再通过 CTE 或派生表筛选组内分页;同时说明 ROW_NUMBER、RANK、DENSE_RANK 的并列差异。395 收藏 -
复合索引不一定必须从第一列开始过滤。本文用订单明细查询说明 MySQL 8.4 Skip Scan 如何跳过索引前缀、什么条件下能被优化器选中,以及如何用 EXPLAIN、统计信息和会话级开关验收,避免把一次命中误判成长期方案。394 收藏 -
数据库 · MySQL | 3星期前 | MySQL · 高可用 · 运维 · 性能排查 · mysql MySQL 8.4 复制延迟 replica_parallel_workers replication_applier_status_by_worker
MySQL 8.4 复制延迟不能只看 Seconds_Behind_Source。本文按接收、协调器、worker 和事务提交四段拆分现场,结合 SHOW REPLICA STATUS 与 Performance Schema 指标判断是大事务、并行度不足还是单个 worker 卡住。393 收藏 -
MySQL InnoDB 在线新增二级索引时,ALGORITHM 决定变更实现方式,LOCK 表达并发读写要求。本文用场景、决策表和 SQL 示例说明怎么选,以及哪些情况下应让变更直接失败。393 收藏 -
MySQL 8.4 InnoDB 修改大表列类型通常只能使用 ALGORITHM=COPY。本文从表副本、锁、磁盘、异步复制和原子 DDL 五个边界说明如何估算变更窗口与回退方案。393 收藏 -
围绕 MySQL wait_timeout 与客户端连接生命周期,说明如何配置 database/sql 连接池、设置安全余量、识别失效连接,并限制只读查询重试的边界。392 收藏 -
数据库 · MySQL | 1个月前 | MySQL · JSON · 数据库开发 · JSON_TABLE MySQL 8.4 JSON_TABLE NESTED PATH ON EMPTY ON ERROR JSON 数组展开
业务事件常被压在一列 JSON 数组里,直接用 JSON_EXTRACT 取值很快就会遇到多行展开、字段缺失和类型转换问题。本文用订单事件数组演示 MySQL 8.4 的 JSON_TABLE、FOR ORDINALITY、NESTED PATH 以及 ON EMPTY/ON ERROR 写法,并用行数与警告核对结果。390 收藏 -
批量接口遇到网络重试时,幂等键不能只停留在请求参数里。本文用批量导入订单场景说明请求级幂等、业务唯一约束和重复响应如何配合,并给出可核对的事务边界。390 收藏 -
用 MySQL EXPLAIN ANALYZE 对比同一迭代器的估算 rows 与 actual rows,判断低估、高估及统计信息失真的处理方向。389 收藏 -
通过订单累计示例解释 MySQL 窗口函数 ROWS 与 RANGE 的边界差异,定位并列排序值、默认帧、NULL 和类型限制导致的结果异常。387 收藏 -
MySQL 组合索引不是把高选择性列简单排在最前面,而要先看等值条件、范围条件和排序的连续性。本文用列表查询说明索引列顺序、函数表达式、filesort 与回表如何一起判断。385 收藏