MySQL技术文章
-
MySQL 备份恢复不能只看备份文件是否存在,还要保存并复核二进制日志文件、起始位置和停止位置。本文给出一套不依赖猜测的检查方法。216 收藏 -
MySQL 在线 DDL 仍可能被元数据锁阻塞。本文用 sys.schema_table_lock_waits 和 performance_schema.metadata_locks 定位持锁事务,并通过 lock_wait_timeout、ALGORITHM 和 LOCK 设定可控的变更失败边界。216 收藏 -
数据库 · MySQL | 2个月前 | MySQL · 错误处理 · 事务 · 存储过程 · 数据库运维 · MySQL存储过程 MySQL GET DIAGNOSTICS SQLSTATE MYSQL_ERRNO 事务异常处理
MySQL 存储过程中的异常处理不能只靠一个通用错误提示。GET DIAGNOSTICS 可以读取 SQLSTATE、MYSQL_ERRNO、MESSAGE_TEXT、NUMBER 和 ROW_COUNT,再把可审计的结果写入日志表;本文用订单入库事务说明诊断区读取、回滚与 RESIGNAL 的边界。215 收藏 -
MySQL 9.4 新增 server_memory 后,默认内存变量会怎样计算?本文用 SHOW VARIABLES 和启动参数拆开它与 temptable_max_ram、innodb_buffer_pool_size 的关系,并说明它为什么不是运行时内存上限。215 收藏 -
MySQL 长事务读到旧值,常与隔离级别和快照创建时机有关。本文用双会话示例对比 RR 首次一致性读、显式快照与 RC 每次读,并说明读类型、自身修改和事务结束的边界。214 收藏 -
MySQL STATEMENT_DIGEST 解析不了 SQL 时不会返回普通摘要,而是产生错误;本文对比字面量和变量输入的错误信息差异,并给出应用层捕获与记录方法。214 收藏 -
MySQL 的 INVISIBLE 列仍然存在,只是不会被 SELECT * 或表别名通配展开。本文用最小示例对比通配查询、显式列名和元数据排查方法,说明如何兼容旧接口并稳定读取隐藏辅助列。213 收藏 -
MySQL 多消费者队列可在短事务中使用 FOR UPDATE SKIP LOCKED 领取互不重叠的任务,再通过租约令牌、超时回收和幂等约束降低重复执行风险。210 收藏 -
MySQL 连接池复用 TCP 连接时,SESSION 变量会随连接一起保留。本文用 time_zone、sql_mode 和 init SQL 说明旧状态从哪里来,给出借出前初始化、归还后清理与复用校验的方法。209 收藏 -
MySQL 队列使用 SKIP LOCKED 时,另一个事务未提交的任务可能暂时不出现在结果集。本文解释锁定读语义,并给出短事务、租约和补偿方案。209 收藏 -
用 JSON_CONTAINS_PATH、JSON_TYPE、JSON_LENGTH 和 JSON_TABLE 区分 MySQL JSON 路径缺失、JSON null 与空数组,并处理类型转换边界。209 收藏 -
MySQL JSON_UNQUOTE 用来去掉 JSON 字符串值的外层引号,并按 JSON 规则处理转义字符。本文从 JSON_EXTRACT 与 ->> 的差异切入,说明数组、对象、NULL、无效字符串和 NO_BACKSLASH_ESCAPES 的边界,帮助你把 JSON 标量安全交给 SQL 或应用层。209 收藏 -
MySQL TO_BASE64 会在每 76 个编码字符后加入换行,FROM_BASE64 解码时会忽略换行等空白。本文说明 JSON、CSV 和自定义文本交换时怎样区分保留、转义与清理,避免把格式差异误判为数据损坏。209 收藏 -
MySQL ST_Transform 会同时转换几何坐标和 SRID;ST_SRID 只修改参考系标识而不改坐标。本文用一个最小 POINT 示例说明调用方式、结果读取和常见错误边界。209 收藏 -
MySQL PARTITION BY HASH 通过 MOD(expr, num) 选择分区,并不保证每个分区行数相等。本文从低基数、热点值、表达式压缩和 NULL 集中四个角度解释数据偏斜,再用分区元数据与一致的分桶查询定位原因,给出换键、调整表达式和改分区类型的决策方法。209 收藏