MySQL技术文章
-
MySQL 8.4 存 IPv6 地址时,不建议把文本直接塞进 VARCHAR。本文用 INET6_ATON 和 INET6_NTOA 演示 VARBINARY(16) 存储、NULL 与非法输入边界、索引查询和应用层回显。356 收藏 -
数据库 · MySQL | 2个月前 | MySQL · 执行计划 · 统计信息 · sql优化 · 数据库排查 · 查询优化 MySQL 8.4 直方图统计 ANALYZE TABLE COLUMN_STATISTICS
MySQL 查询明明有索引,优化器却把结果行数估得很离谱时,问题可能在列值分布而不是索引定义。本文用订单状态分布不均的场景,演示 MySQL 8.4 直方图的生成、读取、采样率核对与安全删除,说明它适合修正什么判断,以及哪些列不能生成直方图。353 收藏 -
报表把一组订单号拼成一列时,GROUP_CONCAT 可能悄悄只返回前 1024 字节。本文从默认上限、会话级调整、字符数与字节数验收几处说明截断原因,并给出不把参数盲目调大的检查方法。353 收藏 -
数据库 · MySQL | 2个月前 | MySQL · 数据库 · 性能监控 · MySQL performance_schema events_statements_history_long DIGEST 异常 SQL 语句历史
MySQL 的 performance_schema 会把近期语句按事件记录下来,DIGEST 还能把字面量不同的同类 SQL 归并观察。本文用 events_statements_history_long 说明如何抓取异常语句、区分总耗时与单次耗时,并处理历史表为空、采样范围有限等问题。352 收藏 -
讲清 MySQL LOAD DATA 导入 TSV 文件时 FIELDS TERMINATED BY、FIELDS ESCAPED BY、LINES TERMINATED BY 与 \N NULL 标记的对应关系,并给出列顺序、CRLF、字符集和 LOCAL 排障方法。352 收藏 -
MySQL CTE 会在什么情况下物化而不是合并?本文从查询结构、递归 CTE、61 张基表边界和 EXPLAIN 计划出发,说明 MERGE、NO_MERGE 与 derived_merge 的判断方法。352 收藏 -
从 SHOW ENGINE INNODB STATUS 读懂持锁与等待锁,定位 MySQL 事务交叉加锁的闭环,并给出访问顺序、索引和重试的处理方案。351 收藏 -
数据库 · MySQL | 2个月前 | MySQL · 执行计划 · 统计信息 · sql优化 · 数据库排查 · 查询优化 MySQL 8.4 直方图统计 ANALYZE TABLE COLUMN_STATISTICS
MySQL 查询明明有索引,优化器却把结果行数估得很离谱时,问题可能在列值分布而不是索引定义。本文用订单状态分布不均的场景,演示 MySQL 8.4 直方图的生成、读取、采样率核对与安全删除,说明它适合修正什么判断,以及哪些列不能生成直方图。350 收藏 -
数据库 · MySQL | 5天前 | 连接池 · 故障排查 · MySQL教程 · mysql 连接池 wait_timeout database/sql SetConnMaxIdleTime SetConnMaxLifetime 空闲连接 PingContext
MySQL 连接池空闲连接失效,通常是服务端、代理或网络设备先关闭了空闲连接,应用在下一次复用时才发现。本文按时间边界排查 wait_timeout,并用 Go database/sql 的空闲时间、生命周期、PingContext 和 Stats 给出可执行处理方案。350 收藏 -
MySQL 8.4 RESOURCE GROUP 可以把后台批处理会话放入独立资源组,通过 VCPU、THREAD_PRIORITY 和 SET RESOURCE GROUP 限制其对前台查询的影响。本文用一个可回滚的示例说明创建、绑定、核验与平台边界。349 收藏 -
MySQL JSON_STORAGE_FREE 只有在 JSON 列通过 JSON_SET、JSON_REPLACE 或 JSON_REMOVE 进行合适的部分更新后,才可能返回正数。本文用可复用的 SQL 说明如何判断空闲空间、为什么结果为 0,以及如何结合 JSON_STORAGE_SIZE 排查。347 收藏 -
MySQL 存储过程需要把参数校验失败和底层异常清楚地交给调用方时,可以用 SIGNAL 设置 SQLSTATE、MESSAGE_TEXT 与 MYSQL_ERRNO。本文从最小示例、handler、诊断区和排查边界说明怎样建立稳定的错误契约。347 收藏 -
MySQL 分区表是否真的减少了扫描范围,不能只看查询能否返回结果,而要看 EXPLAIN 的 partitions 列。本文用 RANGE 分区示例说明如何对照分区定义、WHERE 条件和执行计划,区分命中一个分区、命中多个目标分区与没有发生分区裁剪。347 收藏 -
用 MySQL 8.4 的 JSON_SCHEMA_VALID() 把 JSON Schema 放进 CHECK 约束,再用 JSON_SCHEMA_VALIDATION_REPORT() 和 SHOW WARNINGS 定位字段缺失、类型错误与范围越界。345 收藏 -
MySQL 8.4 可用 SET_VAR 临时启用不可见索引候选,无需改变索引可见性。本文说明单语句写法、会话原值恢复、连接池风险,以及允许候选不等于强制选中。345 收藏