MySQL技术文章
-
MySQL 的 JSON 标量提取结果未必天然适合作为函数索引键。本文说明 JSON_UNQUOTE 返回 LONGTEXT 时为什么需要 CAST,并给出字符串、数值、金额类型的索引与查询匹配写法。204 收藏 -
MySQL 生成列没有单独的刷新按钮:依赖列变化时,存储生成列和它的索引在行写入过程中维护,虚拟生成列则在读取时计算。本文用最小 SQL 区分两种时机,并排查事务可见性与执行计划未用索引的常见误判。201 收藏 -
MySQL 日期范围查询没有触发分区裁剪,通常与分区表达式不匹配、日期列被函数包裹、类型转换或范围过宽有关。本文用 SHOW CREATE TABLE、INFORMATION_SCHEMA.PARTITIONS 和 EXPLAIN 的 partitions 列定位原因,并给出半开区间改写方法。201 收藏 -
MySQL EXPLAIN ANALYZE 中的 loops 表示迭代器实际执行次数。本文结合 rows、actual time 和嵌套循环 JOIN,说明如何读懂它并定位估算偏差。190 收藏 -
用重复排序值与数值间隔两个小实验,说明 MySQL 窗口函数中 ROWS 按行位置、RANGE 按排序值范围取框架,以及默认边界的常见误区。178 收藏 -
用 MySQL EXPLAIN ANALYZE 拆解查询的迭代器耗时,结合 rows、actual time 和 loops 判断估算偏差、扫描放大与连接瓶颈,并给出安全的复测方法。169 收藏 -
MySQL 批量写入没有通用的最佳事务行数。本文用固定数据集对比 100 到 10000 行事务,采集吞吐、批次与提交延迟、redo 增量,并注入失败测量回滚时间,最终按业务门槛选出兼顾吞吐与恢复成本的最小事务。160 收藏 -
用 GTID 集合、复制线程和写保护检查 MySQL 主从切换条件,说明候选副本提升、旧主库回挂以及新写入后的安全回退边界。153 收藏 -
MySQL Histogram 统计信息不会随每次数据变更自动持续更新,过期后可能让优化器误判过滤率、rows 和访问路径。本文用 COLUMN_STATISTICS、EXPLAIN 与 ANALYZE TABLE 给出判断、重建和回滚边界。145 收藏 -
用 MySQL WITH RECURSIVE 从邻接表生成组织树,讲清根节点参数、层级字段、路径排序、终止条件、深度上限与循环防护,并给出可直接改造的 SQL。127 收藏 -
通过部门成绩同分示例比较 MySQL ROW_NUMBER 与 DENSE_RANK:前者适合每组固定取 N 行,后者适合保留前 N 个并列档位,并讲清稳定排序、CTE 外层筛选和 NULL 边界。112 收藏 -
MySQL GTID 自动定位可让副本按已执行事务集向新源请求缺失事务。本文给出候选源核对、SOURCE_AUTO_POSITION 切换命令、状态验收和已清理 GTID 的处理边界。110 收藏