最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • laravel-soar - 在 Laravel 中轻松容易的优化 sql 语句的扩展包

    正文概述 转载于:掘金(guanguans)   2021-06-16   327

    laravel-soar - 在 Laravel 中轻松容易的优化 sql 语句的扩展包

    功能

    • 支持基于启发式算法的语句优化
    • 支持复杂查询的多列索引优化(UPDATE, INSERT, DELETE, SELECT)
    • 支持 EXPLAIN 信息丰富解读
    • 支持 SQL 指纹、压缩和美化
    • 支持 Eloquent 查询构建器方法生成 SQL 优化报告

    源码链接

    • github.com/guanguans/l…

    相关项目

    • github.com/XiaoMi/soar
    • github.com/guanguans/s…
    • github.com/huangdijia/…
    • github.com/wilbur-yu/h…
    • github.com/guanguans/t…

    环境要求

    • laravel >= 5.5

    安装

    $ composer require guanguans/laravel-soar --dev -vvv
    

    发布服务

    $ php artisan vendor:publish --provider="Guanguans\\LaravelSoar\\SoarServiceProvider"
    

    使用

    生成 sql 评分报告示例

    use App\Models\Member;
        
    Member::query()
        ->select([
            'id',
            'nickname',
        ])
        ->where('id', 100)
        // ->toSoarScore()
        // ->dumpSoarScore()
        ->ddSoarScore()
    ;
    

    laravel-soar - 在 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-soar - 在 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-soar - 在 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-soar - 在 Laravel 中轻松容易的优化 sql 语句的扩展包

    其他使用示例

    \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 命令
    

    起源地下载网 » laravel-soar - 在 Laravel 中轻松容易的优化 sql 语句的扩展包

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元