当前位置: 首页 > 后端技术 > PHP

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

时间:2023-03-29 13:42:19 PHP

laravel-soar-用于在Laravel应用程序中轻松优化sql语句的扩展包。功能支持基于启发式算法的语句优化支持复杂查询(UPDATE、INSERT、DELETE、SELECT)的多列索引优化支持EXPLAIN信息丰富的解释支持SQL指纹、压缩和美化支持Eloquentquerybuilder方法生成SQL优化报告源代码链接https://github.com/guanguans/laravel-soar相关项目https://github.com/XiaoMi/soarhttps://github.com/guanguans/soar-phphttps://github.com/huangdijia/laravel-web-soarhttps://github.com/wilbur-yu/hyperf-soarhttps://github.com/guanguans/think-soar环境需要laravel>=5.5安装$composerrequireguanguans/laravel-soar--dev-vvv发布服务$phpartisanvendor:publish--provider="Guangans\\LaravelSoar\\SoarServiceProvider"用于生成sql评分报告示例useApp\Models\Member;Member::query()->select(['id','nickname',])->where('id',100)//->toSoarScore()//->dumpSoarScore()->ddSoarScore();//查询生成器使用示例DB::table('yb_member')->select('*')->join('yb_member_accountasyb_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成绩报告并退出应用;Generateexplaininformationinterpretationreportexample//querybuilderuseexampleDB::table('yb_member')->select('*')->join('yb_member_accountasyb_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()//生成解释信息解释报告//->dumpSoarHtmlExplain()//打印解释信息解释报告->ddSoarHtmlExplain()//打印解释信息解释报告,并退出应用。;美化sql语句//查询生成器使用示例DB::table('yb_member')->select('*')->join('yb_member_accountasyb_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,并退出应用。;其他用法示例\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命令