MySQL实践系列29:手把手教你调优Order By/Filesort让性能起飞
本文是《MySQL实践系列》的 29讲。大家好,在前面的文章中,我分享了索引、列锁、索引基数等知识点,相信你读后会有收获。今天来分享一个几乎所有后端童鞋都可能踩过的坑,ORDER BY 排序慢的问题。
数据库选型别拍脑袋!我踩三年坑总结的五维框架,附九款产品横评
大家好,我是数据库小学妹。上篇聊了国产数据库怎么从三四十款里筛到两三个,今天换个角度,聊一个更基础的问题:你的业务到底该用哪类数据库?很多团队做数据库选型,上来就纠结"MySQL还是PostgreSQL""OceanBase还是金仓KES"。
GPT 给的 SQL 索引靠谱吗?用 SQLite 执行计划跑一遍
订单列表越查越慢,把 SQL 丢给 GPT,它很快就能回一句“给这些字段加索引”。问题是:索引列的顺序对不对?排序有没有额外开销?查询结果有没有被修改?这些不能靠回答的语气判断。
SQL 效率天花板!开源 CloudDM,自带一站式 AI SQL 助手
如今,用 AI 辅助编写 SQL 已经不是什么新鲜事。只要描述一下查询需求,就能快速得到一段 SQL。但在实际开发中,生成 SQL 只是其中一步。AI 给出的语句是否符合当前数据库的表结构?执行时报错,或者查询性能不理想,又该如何处理?
[安全测试] 登录后改个订单 ID,数据就泄露了
订单详情页回归时,用账号 A 的 Token 重放请求,只把路径里的订单 ID 换成账号 B 的 —— 接口没拒绝,直接返回了 B 的收货人、金额和订单状态。两个账号角色相同、都正常登录,区别只在订单归属。这就是水平越权:用户有权调用这个接口,却没权访问这张具体订单。
BI报表查询慢怎么优化?10个场景的排查清单和SQL示例
引言报表打开转圈、图表一个个往外蹦,第一反应往往是数仓扛不住、该加机器了。翻一翻系统日志会看到另一种情况:慢的很少是数据库本身,而是报表的取数方式,数据集拉了全量明细、查询没有过滤条件、算过的结果没有复用。
C# 避免长事务:一个 HTTP 调用把锁拖了 8 秒
上一篇讲的是"两个事务互相等"(死锁),这一篇讲另一种更常见的故障:只有一个事务,但它把锁抱得太久,导致所有相关请求排队。监控上看得见大量 lock wait,日志里却一条死锁都没有——排查方向完全不同。
JOIN 10 张表 ≠ 慢,真正拖垮查询的是这件事
面试官问:“SQL 里 JOIN 了 10 张表,怎么优化?”新手:加索引。熟手:看执行计划。老手:先固定基线,再谈索引、连接顺序、中间结果膨胀和读模型。表多不是问题,中间结果有多大才是问题。
一次慢查询差点拖垮订单系统:复盘 MySQL 索引优化的三个关键层级
本文以一个真实的订单系统慢查询事故为引,带你完整走一遍 MySQL 索引优化的全链路:从访问范围到索引过滤再到回表过滤,搞清楚每一次查询背后,MySQL 到底做了什么,以及我们该如何下手优化。一、事故背景:一个慢查询,差点拖垮订单系统那是一次再平常不过的发布日。
Group By 结构体替代 Row_Number
十亿级数据去重取最新 — Group By 结构体替代 Row_Number场景十亿级流水表按订单主键去重,取每条订单最新的状态记录。传统 row_number() 窗口写法需要全量分区排序,内存压力大,易出现 OOM。