下面由Laravel教程欄目帶大家介紹關于優(yōu)化Laravel數(shù)據庫查詢的18個技巧【推薦】,希望對大家有所幫助!
如果應用運行緩慢或存在大量數(shù)據庫查詢,請按照以下性能優(yōu)化提示來縮短應用的加載時間。
1. 檢索大型數(shù)據集
本提示主要側重于提高處理大型數(shù)據集時應用的內存使用率。
處理大的集合時,分組檢索結果處理,而不是一次性檢索處理。
如下展示了從 posts
表檢索數(shù)據的過程。
$posts = Post::all(); // 使用 eloquent $posts = DB::table('posts')->get(); // 使用查詢構造器 foreach ($posts as $post){ // 處理 posts 操作 }
上面的例子會從 posts 表檢索所有的記錄并處理。如果這個表達到了 100 多萬行呢?內存將很快被耗盡。
為了避免在處理大型數(shù)據集時出現(xiàn)問題,我們可以檢索結果子集并按照下面的方式處理它們。
選項 1: 使用 chunk
// 當使用 eloquent 時 $posts = Post::chunk(100, function($posts){ foreach ($posts as $post){ // Process posts } }); // 當使用查詢構造器時 $posts = DB::table('posts')->chunk(100, function ($posts){ foreach ($posts as $post){ // Process posts } });
以上例子從 posts 表中檢索 100 條記錄對其進行處理,另外再檢索 100 條記錄進行處理。此迭代將繼續(xù),直到處理完所有記錄。
這種方法將創(chuàng)建