MySQL技术文章
-
从服务端默认值、数据库和表级覆盖,到连接握手后的四个 session 变量,给出一套可回滚的 MySQL 8.4 utf8mb4 迁移与验收流程,避免中文写入正常却排序、比较和结果返回异常。423 收藏 -
用 ROW_NUMBER 为组内记录编号,演示 MySQL 分组取最新整行的写法,并说明 MAX 加回表、并列时间和索引复查要点。423 收藏 -
重复点击、网络重试和消息重复投递都会让写入接口面对同一业务请求多次到达。本文说明如何用幂等键和唯一索引建立数据库边界,并比较重复时返回既有结果与更新既有记录的取舍。421 收藏 -
InnoDB 默认使用 REPEATABLE READ,范围更新可能拿到间隙锁。本文用订单号范围写入场景对比 READ COMMITTED 的锁行为,说明它能减少什么等待、不能替代什么并发保护,以及上线前如何用 data_locks 和事务回归确认结果。421 收藏 -
数据库 · MySQL | 1个月前 | MySQL · 查询优化 · 统计信息 · 性能排查 · 执行计划 EXPLAIN ANALYZE MySQL 8.0 直方图统计 ANALYZE TABLE
当 MySQL 对低基数或倾斜数据估算失准时,直方图统计可以补充普通索引统计。本文用订单状态筛选案例建立基线,说明如何生成、检查、验证和撤销直方图,并划清它不能替代索引的边界。420 收藏 -
MySQL 的 wait_timeout 控制非交互连接的空闲回收,但它不能替代连接池的生命周期管理。本文用连接池、会话变量和断线重连三个边界,给出可检查、可回滚的设置方法。420 收藏 -
数据库 · MySQL | 3星期前 | MySQL · 执行计划 · 查询优化 · 统计信息 · explain MySQL 8.4 直方图统计 ANALYZE TABLE COLUMN_STATISTICS
当 WHERE 条件落在数据分布很不均匀的列上,MySQL 估算行数可能偏离实际。本文用 orders.status 这个可复现实例,说明什么时候建立直方图、如何选择桶数量,以及怎样用 COLUMN_STATISTICS 和 EXPLAIN 验收收益。420 收藏 -
数据库 · MySQL | 1个月前 | MySQL · 复制 · 主键 · InnoDB · 数据库迁移 · 数据库迁移 MySQL 8.4 sql_generate_invisible_primary_key 生成不可见主键 my_row_id
MySQL 8.4 可以为没有显式主键的 InnoDB 表生成不可见主键。本文用迁移排查场景说明如何确认 my_row_id、区分源库与副本行为,并给出备份、建表和回滚验收清单。419 收藏 -
MySQL 8.4 的 InnoDB 死锁发生后会自动选择一个事务回滚,但应用仍要识别错误并重试。本文用订单与库存更新场景还原锁等待环路,演示如何读取 SHOW ENGINE INNODB STATUS、开启 innodb_print_all_deadlocks、判断受害事务并验收安全重试。419 收藏 -
MySQL 8.4 可以用 ALTER USER 为单个账户覆盖全局密码策略。本文用 password_history、password_reuse_interval 和 password_require_current 演示如何收敛影响范围,并核对 mysql.user 中的结果。418 收藏 -
MySQL 使用 ROW_NUMBER() 遇到并列排序值时,不能依赖数据库自行决定顺序;为窗口 ORDER BY 补上唯一键,并同步外层排序,才能让编号、Top N 和分页结果稳定可复现。418 收藏 -
MySQL JSON_VALUE 默认返回 VARCHAR(512),处理分数、金额和数量时应显式使用 RETURNING 数值类型,并区分缺失路径、JSON null 与转换错误。418 收藏 -
用 MySQL CTE 把过滤、明细聚合和最终汇总拆成职责清晰的查询阶段,配合 EXPLAIN 检查维护性与执行代价。418 收藏 -
MySQL 隐形索引不等于停用索引:唯一性仍会维护,主键和隐式主键有额外限制。本文结合复合索引列顺序、表达式一致性、回表与 EXPLAIN 给出灰度检查方法。416 收藏 -
MySQL 用 ROW_NUMBER 去重时,先按业务键分组并定义稳定排序,再在外层筛选 rn=1,就能保留每组一条完整原始行。本文给出预览、边界检查和安全清理写法。416 收藏