L4中级

数据库查询优化直觉

30 分钟性能调优时

格式:理解 N+1 问题和索引的概念。

N+1 问题

场景:显示10篇文章,每篇文章显示作者名字。

差的做法(11次查询):
  查询1:获取10篇文章
  查询2-11:每篇文章分别查询作者

好的做法(2次查询):
  查询1:获取10篇文章
  查询2:一次性获取所有文章的作者

索引的类比: 数据库索引 = 书的目录。没有目录,找一个词需要翻完整本书。有了目录,直接翻到那一页。

练习:以下查询需要索引吗?

  1. 按用户 ID 查找用户 → ?
  2. 按创建时间排序文章 → ?
  3. 按邮箱搜索用户 → ?
  4. 全文搜索文章内容 → ?

我的笔记