MySQL技术文章
-
MySQL 混合字符串表达式的排序规则可用 CHARSET、COLLATION、COERCIBILITY 观察;数值越小优先级越高,显式 COLLATE 为 0。本文用原创 SQL 说明列、字面量、拼接和同优先级冲突的判断方法。361 收藏 -
MySQL JSON 数组对象可用 JSON_TABLE 展开后联合过滤。本文区分明细与订单返回粒度,说明路径、序号、缺字段、JSON null 与转换错误,并给出原创订单查询样例。467 收藏 -
MySQL 联合索引没有命中时,按最左前缀、等值与范围条件、表达式写法和 EXPLAIN 字段逐层判断,区分索引无法使用与优化器主动选择全表扫描。415 收藏 -
MySQL EXPLAIN 中的 rows 是优化器估算,不是实际返回行数。本文用 EXPLAIN ANALYZE、ANALYZE TABLE 和直方图定位偏差来源,并给出复测边界。437 收藏 -
本文用一个订单报表示例说明 MySQL CTE 如何按筛选、聚合和展示关联拆分复杂查询,并解释 EXPLAIN、合并与物化之间的关系。413 收藏 -
MySQL JSON_TABLE 使用 NESTED PATH 展开空数组时,父级记录仍可能保留一行,嵌套列显示为 NULL。本文解释补位行的来源,并用 EXISTS PATH、外层 WHERE 和 ON EMPTY 区分真实明细、空数组与字段缺失。437 收藏 -
JSON_SET 并不自动等于原地部分更新。本文从同列读写、已有路径、空间条件和观测函数四个角度,说明 MySQL JSON 更新何时能复用存储空间,以及哪些写法会退回整值重写。132 收藏 -
MySQL 存储程序可用裸 RESIGNAL 保留原始条件,用 GET STACKED DIAGNOSTICS 读取原始诊断。本文通过受控异常比较状态、错误号与消息,说明定向改写、额外语句、日志失败和事务归属的边界。280 收藏 -
数据库 · MySQL | 3星期前 | 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 | 3星期前 | 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 收藏