Go语言技术文章
-
JSON_SET 并不自动等于原地部分更新。本文从同列读写、已有路径、空间条件和观测函数四个角度,说明 MySQL JSON 更新何时能复用存储空间,以及哪些写法会退回整值重写。132 收藏 -
用一个最小 redis-cli 示例说明 Redis Streams 消费组的创建、XREADGROUP 新消息读取、PEL 待确认列表、XACK 确认、XPENDING 排查与 BLOCK 阻塞边界。200 收藏 -
MySQL 存储程序可用裸 RESIGNAL 保留原始条件,用 GET STACKED DIAGNOSTICS 读取原始诊断。本文通过受控异常比较状态、错误号与消息,说明定向改写、额外语句、日志失败和事务归属的边界。280 收藏 -
数据库 · MySQL | 2天前 | MySQL · InnoDB · 数据库运维 · mysql Threads 锁等待 data_locks performance_schema data_lock_waits INNODB_TRX 阻塞事务
MySQL 锁等待排查应先看 performance_schema.data_lock_waits,再连接 data_locks、innodb_trx 和 threads,区分等待事务、阻塞事务、锁资源与会话信息。本文给出查询路径,并说明空闲阻塞和现场快照的边界。458 收藏 -
MySQL SIGNAL 可以在存储程序中主动返回自定义异常。本文从 SQLSTATE、MESSAGE_TEXT、MYSQL_ERRNO 和 DECLARE CONDITION 入手,给出稳定的错误契约写法,并区分 SIGNAL、handler 与 RESIGNAL 的边界。132 收藏 -
MySQL 连接顺序提示应按局部次序、前缀、后缀和全块固定选择。本文对比四种写法,给出别名与查询块示例,说明 EXPLAIN 观察方法以及 const 表、外连接和冲突提示的限制。403 收藏 -
数据库 · MySQL | 2天前 | MySQL · 事务 · 故障排查 · mysql transaction_read_only INNODB_TRX START TRANSACTION SET TRANSACTION
MySQL 判断当前连接能否写入,不能只看一个只读值;要分开检查 transaction_read_only 的全局、会话与下一事务作用域,再结合事务启动方式和服务器只读开关判断。102 收藏 -
MySQL 不可见索引可通过单语句提示、会话开关或表级 VISIBLE 重新参与计划选择。本文区分三种作用域,给出原设置保留、计划对照和显式回退写法,说明候选索引并不保证最终命中。124 收藏 -
MySQL JSON_TABLE 用 NESTED PATH 展开 JSON 数组时,没有子项的外层对象不会自动消失,而是保留一行并把嵌套列补成 NULL。本文用订单和明细示例说明外连接语义、WHERE 过滤边界以及兄弟嵌套路径的行数规则。231 收藏 -
MySQL 函数索引不命中时,先对照 SHOW CREATE TABLE 中的表达式,再统一 WHERE 的函数、JSON 路径和类型转换,最后用 EXPLAIN 检查 key、key_len 与 rows。335 收藏 -
MySQL JSON_VALUE 默认会让路径不存在和 JSON null 都表现为 SQL NULL。本文用三类输入基线、ON EMPTY、ON ERROR 与 JSON_CONTAINS_PATH 说明如何区分 missing、json-null、present,并处理类型转换错误。488 收藏 -
MySQL WITH ROLLUP 会额外生成小计和总计行,不能只看 NULL 判断层级。本文用 GROUPING() 区分原始 NULL 与汇总 NULL,并给出稳定排序与 ONLY_FULL_GROUP_BY 边界。483 收藏 -
MySQL CTE 不一定会被物化:优化器可能把它合并到外层查询,也可能建立内部临时表。本文用 MERGE、NO_MERGE 和 EXPLAIN FORMAT=JSON 说明怎样判断计划选择。315 收藏