MySQL技术文章
-
使用 MySQL ROW_NUMBER() 按业务键分组、按更新时间倒序取每组最新记录,并处理并列时间、NULL 和索引等常见边界。312 收藏 -
MySQL 递归 CTE 的安全做法不是盲目调大上限,而是先写清终止条件,再按单次查询设置 cte_max_recursion_depth,并用执行时间、行数和结果边界复查。191 收藏 -
用 MySQL JSON_SCHEMA_VALID 配合 CHECK 约束,在 JSON 入库前拒绝缺字段、类型不符和数值越界,并用验证报告定位具体失败位置。446 收藏 -
MySQL 的 IS NULL 可以参与索引范围,但复合索引顺序不能靠 WHERE 条件位置判断。本文用租户与软删除示例说明左前缀、索引选择和 EXPLAIN 复查方法。107 收藏 -
用 MySQL 8.4 EXPLAIN ANALYZE 对齐 rows、actual rows 和 loops,判断估算偏差、统计信息与慢查询热点。181 收藏 -
判断 MySQL 列选择性是否真的变差,不能只看直方图;应结合实际过滤比例、EXPLAIN ANALYZE 的估算与实际行数,以及索引 CARDINALITY 和统计更新时间综合确认。432 收藏 -
sys.schema_unused_indexes 只能说明当前统计周期没有记录到索引事件,不能直接等同于业务永远不使用。本文给出从观察周期、业务 SQL、执行计划到 invisible index 灰度验证的安全删除流程。327 收藏 -
用 performance_schema.events_statements_summary_by_digest 按语句模式聚合慢 SQL,区分总耗时、平均耗时、扫描量与 digest 容量边界。284 收藏 -
MySQL 使用 REGEXP_SUBSTR 匹配带前缀文本时,返回的是完整命中而不是括号捕获组。本文解释返回边界,并用 REGEXP_REPLACE 回溯引用提取目标字段。199 收藏 -
数据库 · MySQL | 5天前 | MySQL · 数据类型 · JSON · MySQL MEMBER OF MySQL JSON 数组成员判断 MEMBER OF 类型不匹配 JSON 数字字符串区别 MySQL JSON 查询
MySQL MEMBER OF 判断 JSON 数组成员时,数字、字符串和 JSON 对象不是同一种值。本文用最小样例说明类型不匹配的原因,并给出按数据域修正查询值、处理 NULL 与核对结果的办法。167 收藏 -
数据库 · MySQL | 5天前 | MySQL · JSON_CONTAINS MySQL JSON_OVERLAPS JSON 数组相交 MySQL JSON 类型比较 MySQL NULL 边界
MySQL JSON_OVERLAPS 判断 JSON 数组交集时,只需共享一个完整元素即可返回 1,但嵌套数组、对象、数字字符串类型以及 JSON null 和 SQL NULL 都有不同边界。130 收藏 -
MySQL JSON_VALUE 默认返回 VARCHAR(512),处理分数、金额和数量时应显式使用 RETURNING 数值类型,并区分缺失路径、JSON null 与转换错误。418 收藏 -
MySQL 默认表达式引用其他列建表失败时,重点检查括号、依赖列定义顺序、AUTO_INCREMENT 和表达式默认值的适用边界,并用两次 INSERT 复查计算时机。410 收藏 -
MySQL CHECK 写入非法值没报错,通常与 NOT ENFORCED、INSERT IGNORE 或 NULL 导致的 UNKNOWN 有关。本文用建表定义、警告和信息架构查询逐层排查。452 收藏 -
讲清 MySQL EXISTS、IN、NOT IN 遇到 NULL 时的三值逻辑差异,并给出 IS NOT NULL 与 NOT EXISTS 的安全写法。425 收藏