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

soar-php2.0-SQL语句优化器和重写器的PHP扩展包,方便SQL语句调优

时间:2023-03-30 02:02:31 PHP

soar-php是基于小米开源soar开发的PHP扩展包,方便框架内的SQL语句调优。环境要求PHP>=7.1Ext-pdo框架使用[x]Laravel-laravel-web-soar[x]ThinkPHP-think-soar[x]Hyperf-hyperf-soar[]Yii2[]Symfony[]Sliminstall$composerrequireguanguans/soar-php--dev下载小米开源SQL优化器soar。更详细的安装可以参考soarinstall#macOS$wgethttps://github.com/XiaoMi/soar/releases/download/0.11.0/soar.darwin-amd64#linux$wgethttps://github.com/XiaoMi/soar/releases/download/0.11.0/soar.linux-amd64#windows$wgethttps://github.com/XiaoMi/soar/releases/download/0.11.0/soar.windows-amd64#你可以通过使用其他命令或下载程序下载来初始化配置。更详细的配置参考soarconfig方法1.运行时初始化配置'/Users/yaozm/Documents/wwwroot/soar-php/soar.darwin-amd64',//测试环境配置'-test-dsn'=>['host'=>'127.0.0.1','port'=>'3306','dbname'=>'database','username'=>'root','password'=>'123456',],//日志输出文件'-log-output'=>'./soar.log',//报告输出格式:默认markdown[markdown,html,json]'-report-type'=>'html',];$soar=newSoar($配置);方法二:配置文件初始化配置vendor在同级目录下新建.soar.dist或.soar,内容参考.soar.example,例如:'/Users/yaozm/Documents/wwwroot/soar-php/soar.darwin-amd64',//测试环境配置'-test-dsn'=>['host'=>'127.0.0.1','port'=>'3306','dbname'=>'database','username'=>'root','password'=>'123456',],//日志输出文件'-log-output'=>'./soar.log',//报告输出格式:默认markdown[markdown,html,json]'-report-type'=>'html',];然后初始化.soar>.soar.distSQL评分方法调用:$sql="SELECT*FROM`fa_user``user`LEFTJOIN`fa_user_group``group`ON`user`.`group_id`=`group`.`id`;";echo$soar->分数($sql);输入结果:解释信息解释方法调用:$sql="SELECT*FROM`fa_auth_group_access``aga`LEFTJOIN`fa_auth_group``ag`ON`aga`.`group_id`=`ag`.`id`;";//输出html格式echo$soar->htmlExplain($sql);//输出md格式echo$soar->mdExplain($sql);//输出html格式echo$soar->explain($sql,'html');//输出md格式echo$soar->explain($sql,'md');输出结果:语法检查方法调用:$sql='selec*fromfa_user';echo$soar->syntaxCheck($sql);输出结果:在SQL1处:第1行第5列靠近“select*fromfa_user”(总长度20)SQL指纹方法调用:$sql='select*fromfa_userwhereid=1';echo$soar->fingerPrint($sql);输出结果:select*fromfa_userwhereid=?SQL美化方法调用:$sql='select*fromfa_userwhereid=1';var_dump($soar->漂亮($sql));输出结果:SELECT*FROMfa_userWHEREid=1;将markdown转换为html方法调用:echo$soar->md2html("##Thisisatest");输出结果:...

这是一个测试

。..soar帮助方法调用:var_dump($soar->help());输出结果:'Usageof/Users/yaozm/Documents/wwwroot/soar-php/soar:-allow-charsetsstringAllowCharsets(default"utf8,utf8mb4")-allow-collat??esstringAllowCollat??es-allow-drop-indexAllowDropIndex,允许输出去除重复的索引建议-allow-enginesstringAllowEngines(default"innodb")-allow-online-as-testAllowOnlineAsTest,允许在线环境也可以作为测试环境-blacklist字符串指定黑名单配置文件的位置,文件中的SQL不会被审核...执行任何soar命令方法调用:$command="echo'##这是另一个测试'|/Users/yaozm/Documents/wwwroot/soar-php/soar.darwin-amd64-report-typemd2html";echo$soar->exec($command);output:...

Thisisanothertest

...参考链接https://github.com/XiaoMi/soar,XiaoMiLicenseMIT