下面由laravel教程欄目給大家介紹在laravel中輕松容易的優化sql語句的擴展包(laravel-soar),希望對需要的朋友有所幫助!
laravel-soar – 在 Laravel 應用程序中輕松容易的優化 sql 語句的擴展包。
功能
- 支持基于啟發式算法的語句優化
- 支持復雜查詢的多列索引優化(UPDATE, INSERT, delete, select)
- 支持 EXPLAIN 信息豐富解讀
- 支持 SQL 指紋、壓縮和美化
- 支持 Eloquent 查詢構建器方法生成 SQL 優化報告
源碼鏈接
- github.com/guanguans/laravel-soar
相關項目
- github.com/XiaoMi/soar
- github.com/guanguans/soar-php
- github.com/huangdijia/laravel-web-soar
- github.com/wilbur-yu/hyperf-soar
- github.com/guanguans/think-soar
環境要求
- laravel >= 5.5
安裝
$ composer require guanguans/laravel-soar --dev -vvv
發布服務
$ php artisan vendor:publish --provider="GuanguansLaravelSoarSoarServiceProvider"
使用
門面使用示例
$sql?=?Member::query()->select(['id',??'nickname'])->where('id',??100)->toRawSql(); Soar::score($sql);????????//?生成?sql?評分報告 Soar::mdExplain($sql);????//?生成?markdown?格式的?explain?信息解讀報告 Soar::htmlExplain($sql);??//?生成?html?格式的?Explain?信息解讀報告 Soar::syntaxCheck($sql);??//?sql?語法檢查 Soar::fingerPrint($sql);??//?生成?sql?指紋 Soar::pretty($sql);???????//?美化?sql Soar::md2html($sql);??????//?將?markdown?格式內容轉化為?html?格式內容 Soar::help($sql);?????????//?輸出?soar?幫助命令內容 Soar::exec($command);?????//?執行任意?soar?命令
生成 sql 評分報告示例
use?AppModelsMember; Member::query() ????->select([ ????????'id', ????????'nickname', ????]) ????->where('id',?100) ????//?->toSoarScore()???//?生成?sql?評分報告 ????//?->dumpSoarScore()?//?打印?sql?評分報告 ????->ddSoarScore()??????//?打印?sql?評分報告,并且退出應用程序。 ;
//?查詢構建器使用示例 DB::table('yb_member') ????->select('*') ????->join('yb_member_account?as?yb_member_account',?'yb_member_account.member_id',?'=',?'yb_member.id') ????->whereRaw('1??1') ????->where('yb_member.nickname',?'like',?'admin') ????->where('yb_member.username',?'like',?'%admin%') ????->whereRaw("substring(yb_member.username,?1,?5)?=?'admin'") ????->whereIn('yb_member.id',?[110,?111,?112,?113,?114,?115,?116,?117,?118,?119,?120]) ????->orWhereNotNull('yb_member.realname') ????->groupByRaw("yb_member.status,?'100'") ????->having('yb_member.id',?'>',?'100') ????->inRandomOrder() ????//?->toSoarScore()???//?生成?sql?評分報告 ????//?->dumpSoarScore()?//?打印?sql?評分報告 ????->ddSoarScore()??????//?打印?sql?評分報告,并且退出應用程序。 ;
生成 explain 信息解讀報告示例
//?查詢構建器使用示例 DB::table('yb_member') ????->select('*') ????->join('yb_member_account?as?yb_member_account',?'yb_member_account.member_id',?'=',?'yb_member.id') ????->whereRaw('1??1') ????->where('yb_member.nickname',?'like',?'admin') ????->where('yb_member.username',?'like',?'%admin%') ????->whereRaw("substring(yb_member.username,?1,?5)?=?'admin'") ????->whereIn('yb_member.id',?[110,?120]) ????->orWhereNotNull('yb_member.realname') ????->groupByRaw("yb_member.status,?'100'") ????->having('yb_member.id',?'>',?'100') ????->inRandomOrder() ????//?->toSoarHtmlExplain()???//?生成?explain?信息解讀報告 ????//?->dumpSoarHtmlExplain()?//?打印?explain?信息解讀報告 ????->ddSoarHtmlExplain()??????//?打印?explain?信息解讀報告,并且退出應用程序。 ;
美化 sql 語句
//?查詢構建器使用示例 DB::table('yb_member') ????->select('*') ????->join('yb_member_account?as?yb_member_account',?'yb_member_account.member_id',?'=',?'yb_member.id') ????->whereRaw('1??1') ????->where('yb_member.nickname',?'like',?'admin') ????->where('yb_member.username',?'like',?'%admin%') ????->whereRaw("substring(yb_member.username,?1,?5)?=?'admin'") ????->whereIn('yb_member.id',?[110,?120]) ????->orWhereNotNull('yb_member.realname') ????->groupByRaw("yb_member.status,?'100'") ????->having('yb_member.id',?'>',?'100') ????->inRandomOrder() ????//?->toSoarPretty()???//?生成美化后的?sql ????//?->dumpSoarPretty()?//?打印美化后的?sql ????->dumpSoarPretty()????//?打印美化后的?sql,并且退出應用程序。 ;
《相關推薦:laravel》? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END