MySQL技术文章
-
联合索引列顺序不能只看区分度。本文用订单查询逐项判断等值前缀、首个范围列、排序方向与稳定分页,再结合 key_len、Using filesort 和 EXPLAIN ANALYZE 验证设计。500 收藏 -
MySQL 隐形索引可用于观察查询失去某条索引后的影响,并保留恢复可见性的方式。本文给出 MySQL 8.4 示例,说明负载基线、执行计划、退化信号、恢复命令,以及维护成本、约束和物理删除的区别。500 收藏 -
从事务快照建立时机入手,解释 MySQL 默认 REPEATABLE READ 下普通 SELECT 为什么看不到其他会话刚提交的数据,并给出提交事务、READ COMMITTED 与锁定读的选择边界。499 收藏 -
MySQL 可用 JSON_OVERLAPS 判断两个 JSON 数组是否至少共享一个元素。本文以标签筛选说明数字与字符串、嵌套数组、SQL NULL 和空数组的区别,并给出只读 SQL 示例与查询回退思路。498 收藏 -
MySQL 分区键不能只看字段是否有索引,还要同时看查询能否触发分区裁剪、数据是否按时间维护,以及主键和唯一键是否包含分区列。本文用 RANGE、COLUMNS、LIST、HASH 和 KEY 对比一个可落地的选择顺序。495 收藏 -
用 HEX(WEIGHT_STRING(...)) 观察 MySQL 排序规则生成的二进制权重,区分字符字符串与二进制字符串,并掌握 AS CHAR、AS BINARY 的长度边界。492 收藏 -
MySQL 大表使用 LIMIT offset, size 翻到后页时,会先扫描并丢弃大量记录。本文用稳定排序、联合索引和 keyset pagination 改造查询,并说明倒序、重复时间戳和末页的处理方式。490 收藏 -
MySQL 复制延迟不能只看一个时间差。本文按 replica_parallel_workers、复制通道状态、协调线程和工作线程逐层分析,帮助定位并行度不足、单线程拖尾与重试错误。488 收藏 -
MySQL JSON_VALUE 默认会让路径不存在和 JSON null 都表现为 SQL NULL。本文用三类输入基线、ON EMPTY、ON ERROR 与 JSON_CONTAINS_PATH 说明如何区分 missing、json-null、present,并处理类型转换错误。488 收藏 -
本文用 MySQL ST_FrechetDistance 比较两条 LineString 轨迹的离散形状差异,说明显式顶点、SRS、单位参数、采样密度以及空值和异常输入的处理边界。488 收藏 -
MySQL NTILE 按排序把结果行尽量均匀地分入固定桶。通过十行样例说明余数、并列值、分区和外层筛选,并比较人数分桶与固定阈值分档的适用条件。487 收藏 -
定位 MySQL 的 Illegal mix of collations,不要先改全库字符集;应先对报错表达式两侧执行 COLLATION() 与 COERCIBILITY(),再检查列定义和连接变量。486 收藏 -
MySQL WITH ROLLUP 会额外生成小计和总计行,不能只看 NULL 判断层级。本文用 GROUPING() 区分原始 NULL 与汇总 NULL,并给出稳定排序与 ONLY_FULL_GROUP_BY 边界。483 收藏 -
用 MySQL WINDOW 定义可复用的分组排序,同时生成排名与累计值,并说明 named window 的扩展、冲突和检查方法。482 收藏 -
MySQL BENCHMARK 只重复标量表达式的运行时,不会完整重复解析、优化器、锁与结果集传输。本文用排查式方法拆开两种耗时,说明如何设计可解释的测试。481 收藏