laravel性能優(yōu)化的方法震叮,分為四個(gè)點(diǎn):
1.自帶命令
2.debugbar
3.預(yù)加載
4.慢sql查詢
自帶命令
路由緩存優(yōu)化
注:路由文件里不要寫路由函數(shù)
php artisan route:cache //生產(chǎn)路由緩存文件
php artisan route:clear //移除
配置緩存優(yōu)化
php artisan config:cache //生產(chǎn)配置緩存文件
php artisan config:clear //移除
優(yōu)化類加載
php artisan optimize //生產(chǎn)優(yōu)化類文件
php artisan clear-compiled //清空優(yōu)化類
debugbar調(diào)試工具
git地址:debugbar
composer安裝
composer require barryvdh/laravel-debugbar --dev
注冊(cè)到config/app.php的ServiceProvider 數(shù)組里
Barryvdh\Debugbar\ServiceProvider::class
提取配置文件到config文件夾目錄下
php artisan vendor:publish --provider="Barryvdh\Debugbar\ServiceProvider"
注意
1.config/app.php內(nèi)的'enabled'=>env('DEBUGBAR_ENVBLED',null);
2.沒有配置緩存文件
預(yù)加載
在使用關(guān)聯(lián)查詢時(shí)胧砰,控制器里的sql查詢需要使用with或load關(guān)聯(lián)查詢
栗子:
Post(model):
puliic function user()
{
return $this->belongsTo('App\User');
}
PostController
$post = Post::orderBy('id','desc')->with('user')->get();
或是
$post = Post::orderBy('id','desc')->get();
$post->load('user');
4.慢sql查詢
一般可以將下面的方法放入app\Providers\AppServiceProvider的boot里
//打印慢于10ms的sql查詢
DB::listen(function($query){
$sql = $sql->sql;
$time = $sql->time;
})
if($time>10){
Log::debug(var_export(compact('sql')));
}