MySQL技术文章
-
MySQL 隐形索引可用于观察查询失去某条索引后的影响,并保留恢复可见性的方式。本文给出 MySQL 8.4 示例,说明负载基线、执行计划、退化信号、恢复命令,以及维护成本、约束和物理删除的区别。500 收藏 -
从事务快照建立时机入手,解释 MySQL 默认 REPEATABLE READ 下普通 SELECT 为什么看不到其他会话刚提交的数据,并给出提交事务、READ COMMITTED 与锁定读的选择边界。499 收藏 -
用 HEX(WEIGHT_STRING(...)) 观察 MySQL 排序规则生成的二进制权重,区分字符字符串与二进制字符串,并掌握 AS CHAR、AS BINARY 的长度边界。492 收藏 -
MySQL GTID_EXECUTED 是事务集合,不是单一整数位点。本文用源端与副本端的 Executed_Gtid_Set、Retrieved_Gtid_Set、GTID_SUBSET 和 GTID_SUBTRACT 判断复制是否推进,并定位仍未应用的事务范围。490 收藏 -
MySQL BENCHMARK 只重复标量表达式的运行时,不会完整重复解析、优化器、锁与结果集传输。本文用排查式方法拆开两种耗时,说明如何设计可解释的测试。481 收藏 -
MySQL 锁定服务用 namespace 与 lock name 组成标识,并支持读写锁;GET_LOCK() 只有一个命名字符串且始终是排他锁。本文用原创 SQL 对比两种命名粒度、释放范围和监控字段。460 收藏 -
SET DEFAULT ROLE 改的是账号的默认激活集合,主要影响下一次认证登录;已有连接不会自动切换。本文区分默认角色、当前会话和全量自动激活策略,并给出同一连接的核对方法。454 收藏 -
MySQL InnoDB 使用 READ COMMITTED 时,FOR UPDATE 和 FOR SHARE 只锁访问到的索引记录,不锁记录前后的间隙。本文比较唯一等值、范围查找、锁定读选项和幻读边界,帮助你判断实际会阻塞什么。453 收藏 -
ST_Validate 返回 NULL 不能直接等同于无效几何。本文用原始列 IS NULL、ST_IsValid、ST_AsText 和审计 CASE 区分 SQL 空值、语法异常与几何无效,并说明地理 SRS 越界时的报错边界。447 收藏 -
MySQL FORMAT 的第三个参数 locale 会改变小数点、千分位符号和分组方式。本文用 en_US 与 de_DE 对比说明写法,并解释默认值、NULL、小数位和排序注意事项。443 收藏 -
MySQL 分区表出现读取异常或损坏标记时,应先确认存储引擎和分区范围,再用 CHECK TABLE 或 CHECK PARTITION 读取完整结果,最后结合备份和恢复方案处理。本文说明检查选项、InnoDB 风险与结果边界。434 收藏 -
MySQL ST_Collect 可以把同一分组中的几何值聚合为一个 Multi 几何或 GeometryCollection。本文给出按业务字段分组的写法,并说明 DISTINCT、NULL、SRS 和空间融合边界。432 收藏 -
MySQL LAG 按分区排序取前序行,LAST_VALUE 取当前窗口帧末行。本文用账户流水说明默认 RANGE 帧、显式全分区帧、ROWS 与重复排序值的边界,并给出选择上一条、分区末值和最大值的 SQL 写法。432 收藏 -
用同一会话打开 optimizer_trace,沿着 rows_estimation、range_analysis 和 considered_execution_plans 阅读 MySQL 的成本估算与访问路径选择。431 收藏 -
MySQL sys 语句延迟直方图中的桶计数表示平均延迟落在该左闭右开区间内的规范化语句摘要数量。本文区分 COUNT_BUCKET、累计计数和累计比例,并说明如何下钻到按 digest 的 Performance Schema 明细。429 收藏