MySQL
已收录文章:51篇
-
数据库 · MySQL | 3星期前 | MySQL · JSON · 索引 · 数据库 · 查询优化 · 生成列 · json_extract 索引优化 列表筛选 生成列 MySQL JSON JSON索引订单列表把渠道、会员等级放进 JSON 后,筛选条件容易变成逐行计算。本文用 MySQL 生成列和索引把 JSON 路径变成可核对的查询字段,同时处理缺失键、空字符串、类型转换和写入成本。351 收藏
-
本文用订单列表深分页场景,演示为什么 LIMIT 大偏移会变慢,并通过覆盖索引、延迟关联和游标式分页减少无效扫描。339 收藏
-
本文用后台订单列表总数统计场景,演示为什么大表每次 COUNT 会拖慢接口,并按精确总数、条件筛选、缓存和汇总表给出优化方案。336 收藏
-
后台订单按日期筛选时,查询慢不一定是索引没建好。本文用 order_created_at 的范围条件对比 DATE() 函数、BETWEEN 和半开区间,并通过 EXPLAIN 核对访问类型、扫描行数与结果边界。334 收藏
-
MySQL 读写分离不是简单把 SELECT 丢到从库。它适合读多写少、查询压力明显大于写入压力的业务,但会带来复制延迟、读己之写、路由规则和故障切换问题。上线前要先确认读写比例、数据一致性要求和回主策略。334 收藏
-
PHP PDO 事务里最容易误判的不是 beginTransaction,而是异常有没有真正离开业务边界、commit 是否只发生一次,以及回滚后调用方是否仍把失败当成功。本文用订单扣库存场景拆开这些边界。329 收藏
-
列表页分页常常要查总数,但 COUNT(*) 一慢,整个页面都会被拖住。本文按完整工作流拆解:先确认筛选条件和扫描行数,再选择联合索引、缓存总数或汇总表,最后给出上线检查清单。329 收藏
-
本文按完整工作流讲解 MySQL 慢 SQL 优化:从慢查询日志发现候选 SQL,聚合同类语句,用 EXPLAIN 判断访问方式和扫描行数,再设计联合索引,并通过延迟、扫描行数和业务结果做回归验证。321 收藏
-
搜索框查询一上线就变慢,很多时候不是数据量突然失控,而是 LIKE 条件写法让索引用不上。本文从慢查询现场开始,逐步验证左通配符、执行计划、前缀匹配和业务改写,整理一套更稳的模糊搜索排查方法。308 收藏
-
数据库 · MySQL | 3星期前 | MySQL · 索引 · limit · explain · sql优化 · ORDER BY · mysql order by explain limit 复合索引 filesort一条只取 20 行的订单查询,EXPLAIN 却可能放弃看似更贴近 WHERE 条件的索引,改走排序索引并在途中筛选。原因是 LIMIT 同时改变了排序、过滤和回表的成本取舍。通过读懂 key、rows 和 Extra,给等值条件与排序字段设计复合索引,再用受控对比核实实际读行,才能避免把 filesort 或某个索引名称当成唯一结论。279 收藏
-
通过一个可复现的小实验,从订单列表慢查询开始,初始化表和数据,添加复合索引,再用 EXPLAIN 检查 Using index,理解覆盖索引的适用边界。276 收藏
-
清理 MySQL 大表历史数据时,直接 DELETE 大范围记录容易造成锁等待和事务膨胀。本文用主键游标、固定批次、执行计划和可暂停的回滚窗口,搭出一套可观察的分批清理方案。273 收藏