第3章 ORM查询与性能


文档摘要

第3章 ORM查询与性能 章节摘要:模型建好了,接下来是日常使用频率最高的动作——查询。本章覆盖 QuerySet 的核心心智模型(惰性求值与链式构造)、常用查询 API 全景、写操作与事务,最后集中治理第一个真正的性能大坑:N+1 查询。这一章的功底决定项目上线后的响应速度。 学习目标 解释 QuerySet 惰性求值机制,说出触发真正执行 SQL 的时机 熟练使用过滤、排除、跨关系查询与聚合 掌握创建、更新、删除与事务边界 用 selectrelated 与 prefetchrelated 消除 N+1 查询 核心概念速览 查询集是"查询的描述",不是"查询的结果"——这是 ORM 一切行为的钥匙。 项目当前状态 模型已迁移落库。

第3章 ORM查询与性能

章节摘要:模型建好了,接下来是日常使用频率最高的动作——查询。本章覆盖 QuerySet 的核心心智模型(惰性求值与链式构造)、常用查询 API 全景、写操作与事务,最后集中治理第一个真正的性能大坑:N+1 查询。这一章的功底决定项目上线后的响应速度。

学习目标

  1. 解释 QuerySet 惰性求值机制,说出触发真正执行 SQL 的时机
  2. 熟练使用过滤、排除、跨关系查询与聚合
  3. 掌握创建、更新、删除与事务边界
  4. 用 select_related 与 prefetch_related 消除 N+1 查询

核心概念速览

查询集是"查询的描述",不是"查询的结果"——这是 ORM 一切行为的钥匙。

项目当前状态

模型已迁移落库。本章为墨迹博客写出首页列表、文章详情、热门标签等查询,并在上线前把列表页的 101 条 SQL 压成 2 条。

查询这章之所以紧跟着建模讲,是因为它是项目日常运转中执行频率最高的代码路径——上线后每天成千上万次请求,绝大多数都在跑本章写的查询语句。一条低效查询平时看不出来,流量高峰时就是雪崩的起点。本章前半讲"怎么写对",后半讲"怎么写省",两条腿都要有:只会写对的查询,项目能跑;会写省的查询,项目才能扛住真实的流量。性能治理放在功能还没写完的阶段提前讲,就是为了让你从一开始就养成带着成本意识写查询的习惯。

子章节导航

3.1 QuerySet 查询全景

惰性求值、链式过滤、跨关系查询、聚合分组、写操作与事务。

3.2 查询性能与 N+1 治理

N+1 问题的成因定位、两种预取方案的原理与选择、查询计数的度量习惯。

子章节之间的逻辑关系

会用(3.1 查询全景) | v 用得省(3.2 性能治理)──> 第4章 视图接过查询结果去渲染

前置知识与后续延伸

  • 前置:第 2 章的模型与关系设计、SQL 的 join 与索引概念。
  • 为后续铺垫:视图与 DRF 序列化都建立在查询集之上;第 11 章缓存的对象也多半是查询集。

作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U