MySQL技术文章
-
MySQL JSON 列不能直接按内部路径建立普通索引时,可以把高频 JSON_EXTRACT 路径投影为明确类型的生成列,再按查询条件建立索引。本文说明 JSON_UNQUOTE、表达式匹配、EXPLAIN 和写入成本。296 收藏 -
数据库 · MySQL | 4星期前 | mysql事务 · InnoDB · mysql READ ONLY transaction_read_only 只读事务 START TRANSACTION
报表连接可以用 READ ONLY 把事务访问模式收紧,写入会被 MySQL 阻断;但它不是账号权限,仍要配合 SELECT 最小权限、正确的连接池作用域和临时表例外处理。439 收藏 -
数据库 · MySQL | 4星期前 | MySQL · mysql SET PERSIST SET PERSIST_ONLY RESET PERSIST mysqld-auto.cnf SET GLOBAL
MySQL 的 SET GLOBAL 只改变当前实例运行时值,SET PERSIST 还会把配置写入 mysqld-auto.cnf;SET PERSIST_ONLY 只持久化而不改当前值。本文用生效时机、变量可写性、权限和回退动作说明四条语句该怎么选。378 收藏 -
MySQL ANSI_QUOTES 会把双引号内容解析为标识符。本文区分名称与字符串,说明会话配置、同名列误读风险及迁移写法,并提供保留原模式的临时表对照示例。279 收藏 -
MySQL 递归 CTE 的路径列要在锚点查询中先确定足够宽的字符类型,再由递归成员追加节点名称;本文给出写法、长度估算和排查边界。405 收藏 -
MySQL 使用 INSERT ... ON DUPLICATE KEY UPDATE 做幂等写入时,怎样区分新增、实际更新和重复值未变化?本文结合 affected rows、LAST_INSERT_ID、CLIENT_FOUND_ROWS 与多唯一键边界给出判断方法。181 收藏 -
数据库 · MySQL | 4星期前 | MySQL · 执行计划 · 查询优化 · mysql Hash Join 哈希连接 EXPLAIN FORMAT=TREE block_nested_loop join_buffer_size
MySQL 8.4 默认会在可行时采用哈希连接,但是否生效取决于连接条件、可用索引、block_nested_loop 控制项和内存边界。本文从常见慢查询症状出发,说明如何判断候选条件并用 EXPLAIN FORMAT=TREE 复查。185 收藏 -
MySQL LOAD DATA 导入带表头 CSV 时,使用 IGNORE 1 LINES 跳过首行;同时配合 FIELDS、LINES、列清单和 LOCAL 选项,让逗号、双引号、换行、文件位置与权限保持一致。420 收藏 -
MySQL 多表 JOIN 中只想约束一张表时,应使用表别名限定 JOIN_INDEX 或 NO_JOIN_INDEX,并在嵌套查询中用 QB_NAME 明确作用域,最后通过 EXPLAIN 对比 key、访问类型和 rows。432 收藏 -
从 JSON 路径的返回类型、函数索引表达式和排序规则入手,说明怎样让 MySQL 查询真正匹配 JSON 函数索引,并给出 EXPLAIN 排查与生成列兼容方案。136 收藏 -
MySQL JSON_OVERLAPS 用于判断两个 JSON 文档是否存在共同内容。本文以数组交集为主线,说明它与 JSON_CONTAINS 的区别,并补充对象、标量、NULL、类型边界和多值索引方向。279 收藏 -
用 JSON_VALUE 的 RETURNING 明确结果类型,再分别处理路径缺失和类型转换异常,避免 JSON 标量在查询中被当成普通字符串。404 收藏 -
MySQL 按日期计算累计值时,默认 RANGE 会把同一天的记录视为同一组;需要逐行累计时使用 ROWS,并补充稳定排序键。本文用同一组数据对比 ROWS、RANGE 和日期区间窗口的适用边界。393 收藏 -
MySQL 按分组取前几条记录时,可在派生表中用 ROW_NUMBER() 为每组排序编号,再由外层过滤 rn。本文说明稳定排序、并列名次、索引和边界测试。230 收藏 -
MySQL 字符集迁移到 utf8mb4 时,索引长度可能因每字符最大字节数、联合索引、行格式和页大小发生变化。本文给出迁移前盘点、索引字节估算、方案选择和隔离副本复查方法。156 收藏