MySQL技术文章
-
从事务快照建立时机入手,解释 MySQL 默认 REPEATABLE READ 下普通 SELECT 为什么看不到其他会话刚提交的数据,并给出提交事务、READ COMMITTED 与锁定读的选择边界。499 收藏 -
MySQL JSON_UNQUOTE 用来去掉 JSON 字符串值的外层引号,并按 JSON 规则处理转义字符。本文从 JSON_EXTRACT 与 ->> 的差异切入,说明数组、对象、NULL、无效字符串和 NO_BACKSLASH_ESCAPES 的边界,帮助你把 JSON 标量安全交给 SQL 或应用层。209 收藏 -
MySQL 直方图把列值分布补充给优化器,帮助它更准确估算 WHERE 条件的选择率。本文说明如何生成、查看和维护直方图,并用 EXPLAIN 判断它是否改善了计划选择。400 收藏 -
MySQL 可用 REGEXP_REPLACE 将连续普通空格压缩为一个。本文以临时表构建清理示例,区分首尾空格、制表符、换行和 NULL,给出预览、事务试写、回滚及业务字段集成的注意事项。308 收藏 -
MySQL 的 derived_merge 默认允许优化器把派生表合并进外层查询块。本文说明怎样只在当前会话临时关闭它、如何查看与恢复设置,以及为什么 EXPLAIN 计划有时仍不会改变。423 收藏 -
MySQL FOR SHARE 是 InnoDB 的锁定读语法:读取符合条件的行并加共享锁,适合在同一事务中先检查再处理。本文对比普通一致性读,说明事务边界、等待行为、NOWAIT、SKIP LOCKED 和常见误区。389 收藏 -
MySQL DENSE_RANK 可让同一分组内的同分记录共享名次,并让后续排名连续。本文用派生表处理前 N 名筛选,说明 PARTITION BY、ORDER BY 以及 DENSE_RANK、RANK、ROW_NUMBER 的边界。161 收藏 -
MySQL 隐形索引可用于观察查询失去某条索引后的影响,并保留恢复可见性的方式。本文给出 MySQL 8.4 示例,说明负载基线、执行计划、退化信号、恢复命令,以及维护成本、约束和物理删除的区别。500 收藏 -
MySQL 降序索引不是给 ORDER BY DESC 随手加一个关键字就能生效。本文从 InnoDB 联合索引、WHERE 等值条件、混合 ASC/DESC 排序和 EXPLAIN 判断入手,说明怎样减少 filesort,以及哪些场景仍会反向扫描或无法使用降序索引。121 收藏 -
MySQL SHOW WARNINGS 读取当前会话最近语句的诊断信息。本文用数据截断和隐式转换场景说明 warning_count、SHOW COUNT(*) WARNINGS、max_error_count、sql_mode 与 sql_notes 的区别,帮助定位警告为何出现或为何列表不完整。188 收藏 -
MySQL GTID 自动定位可以减少复制切换时对文件偏移量的人工计算,但前提是先确认 GTID 模式、复制线程和已执行事务集。本文给出从停写、选择候选副本、重指向下游到旧源回接的清单。313 收藏 -
MySQL 在线 DDL 仍可能在开始和结束阶段等待元数据锁。本文区分 lock_wait_timeout 与 InnoDB 行锁超时,说明 ALGORITHM、LOCK=NONE、会话级等待上限和 metadata_locks 排查方法。266 收藏 -
用同一会话打开 optimizer_trace,沿着 rows_estimation、range_analysis 和 considered_execution_plans 阅读 MySQL 的成本估算与访问路径选择。431 收藏 -
以消息档案JSON字段为例,说明如何约定字符串类型、建立生成列及索引、按列名检索,并处理路径变化、异常输入和更新维护。407 收藏 -
数据库 · MySQL | 2天前 | MySQL · 复制 · 数据库运维 · 复制延迟 主从切换 MySQL GTID WAIT_FOR_EXECUTED_GTID_SET gtid_executed
用 WAIT_FOR_EXECUTED_GTID_SET 等待指定 GTID 集合在副本执行完成,讲清超时返回值、当前执行集合和切换前的判断边界。227 收藏