MySQL技术文章
-
读写分离最容易出问题的地方不是把查询发到副本,而是写后读、事务边界和主副本切换时的会话状态。本文用 MySQL 8.4 的 GTID 等待与路由规则,搭一套可核对、可回切的处理方法。135 收藏 -
解释 MySQL GROUP BY 执行计划中的 Using temporary,区分临时表提示与磁盘溢出,并从排序组织、联合索引、左前缀和执行计划复查四个方面减少不必要的临时结果整理。134 收藏 -
MySQL 分区表查询没走分区裁剪时,先看分区表达式,再用 EXPLAIN 的 partitions 列确认扫描范围,最后把过滤条件改成可被优化器推导的分区键等值或范围。134 收藏 -
MySQL EXPLAIN ANALYZE 会实际执行目标语句。本文用 KILL QUERY、SHOW PROCESSLIST 和权限边界说明如何安全停止长时间分析,并确认连接是否仍可复用。134 收藏 -
用 MySQL 8.4 的 REGEXP_REPLACE 清洗带空格和分隔符的订单编码,核对捕获组替换、NULL 返回值与更新前后的结果,避免把异常数据悄悄改坏。133 收藏 -
准备删除一个 MySQL 二级索引时,不必先承担回滚风险。MySQL 8.4 可以把索引设为 INVISIBLE,再用 EXPLAIN 和单条查询 hint 对照计划,确认它是否仍被业务查询需要。133 收藏 -
MySQL Instant DDL 不是所有列属性变更都能做到只改元数据。本文按支持条件、锁影响和回退路径区分改默认值、改名、改类型与 NULL 属性等操作,给出执行前检查清单。133 收藏 -
区分MySQL全实例GTID集合等待与旧复制通道等待,说明8.4版本支持、0与1返回值、有限超时及通道状态检查,避免将等待成功误当复制健康或来源证明。133 收藏 -
MySQL INFORMATION_SCHEMA.CHECK_CONSTRAINTS 可以查看 CHECK 约束所属数据库、约束名和 CHECK_CLAUSE;若要定位具体表并查看是否启用,应再关联 TABLE_CONSTRAINTS。本文给出按库、按名称和按表排查的查询写法。133 收藏 -
用 MySQL EVENT 做定时清理时,真正容易漏掉的是全局启用状态、会话时区和执行记录。本文用一张清理任务表说明如何配置、验证、留痕与安全停用。132 收藏 -
MySQL SIGNAL 可以在存储程序中主动返回自定义异常。本文从 SQLSTATE、MESSAGE_TEXT、MYSQL_ERRNO 和 DECLARE CONDITION 入手,给出稳定的错误契约写法,并区分 SIGNAL、handler 与 RESIGNAL 的边界。132 收藏 -
JSON_SET 并不自动等于原地部分更新。本文从同列读写、已有路径、空间条件和观测函数四个角度,说明 MySQL JSON 更新何时能复用存储空间,以及哪些写法会退回整值重写。132 收藏 -
MySQL ROW_COUNT() 的 UPDATE 结果取决于计数语义:默认关注真正改变的行,启用 CLIENT_FOUND_ROWS 后关注 WHERE 匹配的行。本文用原创 SQL 和选择表说明两者边界。131 收藏 -
数据库 · MySQL | 2个月前 | MySQL · JSON_CONTAINS MySQL JSON_OVERLAPS JSON 数组相交 MySQL JSON 类型比较 MySQL NULL 边界
MySQL JSON_OVERLAPS 判断 JSON 数组交集时,只需共享一个完整元素即可返回 1,但嵌套数组、对象、数字字符串类型以及 JSON null 和 SQL NULL 都有不同边界。130 收藏 -
MySQL 窗口函数的执行计划要从 EXPLAIN FORMAT=JSON 的 windowing 节点读起。本文用累计金额示例核对分区、排序和 frame,并解释 using_filesort、临时表与缓冲字段的排查边界。130 收藏