精通 Laravel 性能优化 你需要快速的 Web 应用程序。缓慢的应用会让用户感到沮丧,并损害你的业务。“N+1 查询问题”会减慢你的 Laravel 应用速度。但 Laravel 提供了一个解决方案:预加载 (eager loading)。 这项技术能帮助你掌握 with() 方法。你将学习如何保持应用的快速与高效。 让我们来看一个例子。你有一个博客平台。每篇文章都属于一名作者。你想显示文章列表,并附带每篇文章的作者。 一种常见的方法是先获取所有文章,然后再获取每篇文章的作者。这会导致产生大量的数据库查询。 如果你有 100 篇文章,这段代码会执行 101 次数据库查询。这就是“N+1 查询问题”。它会产生额外的开销并降低应用速度。 with() 方法可以解决这个问题。它通过一两次查询即可获取所有相关的模型。 你可以这样使用: $posts = App\Models\Post::with('author')->get(); 这段代码通过两次查询获取所有文章及其作者。 你也可以加载多个关联关系: $posts = App\Models\Post::with(['author', 'category'])->get(); 或者加载嵌套的关联关系: $posts = App\Models\Post::with('author.profile')->get(); 预加载是构建快速 Laravel 应用的关键。它消除了 N+1 查询问题并减少了数据库查询次数。 使用 with() 方法来提升你的应用性能。 Source: https://dev.to/prabashanadev/mastering-laravel-performance-a-deep-dive-into-eager-loading-22l0