推薦!在Laravel中輕松容易的優化sql語句的擴展包

下面由laravel教程欄目給大家介紹在laravel中輕松容易的優化sql語句的擴展包(laravel-soar),希望對需要的朋友有所幫助!

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

laravel-soar – 在 Laravel 應用程序中輕松容易的優化 sql 語句的擴展包。

推薦!在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?評分報告,并且退出應用程序。 ;

推薦!在Laravel中輕松容易的優化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?評分報告,并且退出應用程序。 ;

推薦!在Laravel中輕松容易的優化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?信息解讀報告,并且退出應用程序。 ;

推薦!在Laravel中輕松容易的優化sql語句的擴展包

美化 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中輕松容易的優化sql語句的擴展包《相關推薦:laravel? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? 版權聲明
THE END
喜歡就支持一下吧
點贊10 分享