HomeControllerファイルのクエリにより、サイトの速度が低下します。ページが完全に読み込まれるまでに20秒かかります。 (ページサイズは3.9 Mbのみで、ページを読み込むたびにCPU負荷は80%まで上がります)。私は、Elequantよりも速いQuery Builderを使用し、クエリを結合して1つのクエリとして送信するように指示されています。私はこれがあまりにも難しいと思う。これにはいくつかの例がありますか?Laravel:複数のクエリを最適化する方法
にHomeController
public function index()
{
$sliders = Post::where('post_type','slider')
->with('FeaturedImage','PostField')
->orderBy('created_at', 'desc')
->limit(4)
->get();
$page1 = Post::where([
['post_type','=','custom_page'],
['slug','=','page1'],
])
->with('FeaturedImage','PostField')
->latest()
->first();
$page2 = Post::where([
['post_type','=','custom_page'],
['slug','=','page2'],
])
->with('FeaturedImage','PostField')
->latest()
->first();
$page3 = Post::where([
['post_type','=','custom_page'],
['slug','=','page-3'],
])
->with('FeaturedImage','PostField')
->latest()
->first();
$compacts = array(
'sliders',
'page1',
'page2',
'page3',
);
return view('site.home')->with(compact($compacts));
}
編集: 移行後
public function up()
{
// Create table for storing roles
Schema::create('posts', function (Blueprint $table) {
$table->increments('id');
$table->integer('author_id');
$table->integer('category_id')->nullable();
$table->string('title');
$table->text('excerpt')->nullable();
$table->text('body')->nullable();
$table->string('slug')->nullable();//unique()
$table->string('post_type')->default('post');
$table->enum('status', ['PUBLISHED', 'DRAFT', 'PENDING'])->default('DRAFT');
$table->timestamps();
});
}
_これはいくつかの例がありますか?_あなたはGoogleを試しましたか?ララベルのドキュメンテーション? – madalinivascu
あなたは基本的に何の理由もなく3回クエリを実行しています – madalinivascu
このクエリを1つのクエリとして結合するにはどうすればいいですか? – Miri