MySQL
已收录文章:20篇
-
后台订单按日期筛选时,查询慢不一定是索引没建好。本文用 order_created_at 的范围条件对比 DATE() 函数、BETWEEN 和半开区间,并通过 EXPLAIN 核对访问类型、扫描行数与结果边界。334 收藏
-
PHP PDO 事务里最容易误判的不是 beginTransaction,而是异常有没有真正离开业务边界、commit 是否只发生一次,以及回滚后调用方是否仍把失败当成功。本文用订单扣库存场景拆开这些边界。329 收藏
-
MySQL 分区表按时间清理历史数据时,逐行 DELETE 可能带来长事务、undo 增长和锁等待。本文从一次线上删除变慢的现象出发,说明如何确认分区边界、选择 DROP PARTITION,并用复查动作验证空间和业务影响。316 收藏
-
数据库 · MySQL | 3星期前 | MySQL · 索引 · limit · explain · sql优化 · ORDER BY · mysql order by explain limit 复合索引 filesort一条只取 20 行的订单查询,EXPLAIN 却可能放弃看似更贴近 WHERE 条件的索引,改走排序索引并在途中筛选。原因是 LIMIT 同时改变了排序、过滤和回表的成本取舍。通过读懂 key、rows 和 Extra,给等值条件与排序字段设计复合索引,再用受控对比核实实际读行,才能避免把 filesort 或某个索引名称当成唯一结论。279 收藏
-
清理 MySQL 大表历史数据时,直接 DELETE 大范围记录容易造成锁等待和事务膨胀。本文用主键游标、固定批次、执行计划和可暂停的回滚窗口,搭出一套可观察的分批清理方案。273 收藏
-
MySQL UPDATE JOIN 不是写上 JOIN 就只会改一行,关联表存在重复键时,同一目标记录可能被多条源记录命中。本文用订单与客户标签的修复场景,演示先用 SELECT 验证关联唯一性,再在事务和影响行数检查下执行更新。262 收藏
-
数据库 · MySQL | 3星期前 | MySQL · 认证 · MySQL 8.4 · 数据库升级 · caching_sha2_password mysql_native_password 账号认证 MySQL 8.4 升级迁移MySQL 8.4 默认不再启用 mysql_native_password,老应用可能在发版后出现账号认证失败。本文用账号盘点、灰度改造、TLS 连通性检查和回退边界,讲清迁移到 caching_sha2_password 的可靠做法。236 收藏
-
数据库 · MySQL | 3星期前 | MySQL · 数据库 · SQL · ON DUPLICATE KEY UPDATE · VALUES · 行别名 · MySQL VALUES() 弃用 ON DUPLICATE KEY UPDATE MySQL 行别名 INSERT AS new MySQL upsert INSERT SELECTMySQL 已将 ON DUPLICATE KEY UPDATE 中用 VALUES() 读取新行字段的写法标记为弃用。本文从库存快照写入场景出发,给出行别名 AS new 的最小改写、INSERT ... SELECT 的不同处理方式,以及上线前应核对的兼容边界。117 收藏