Ske*_*ets 9 php mysql explain laravel
我知道我可以从查询日志中获取原始查询,粘贴所有绑定变量(也在查询日志中找到),explain在查询前面打上 a,然后直接在 mysql 控制台中运行它以获取解释查询......但是有没有更快的方法来获得解释?
理想情况下,我想做这样的事情:
$query = User::where("favorite_color", "blue");
dd($query->explain());
Run Code Online (Sandbox Code Playgroud)
(显然,实际的查询会更加复杂并且有一些连接)
我尝试添加explain这样的内容:
$query->selectRaw("explain select user.*");
Run Code Online (Sandbox Code Playgroud)
但这导致了一个以以下内容开头的查询:
select explain select...
Run Code Online (Sandbox Code Playgroud)
...这只是无效的sql。
Adr*_*erg 16
从Laravel 8.12开始,您可以简单地调用->explain()查询构建器,就像您在问题中所描述的那样。或者使用->explain()->dd()die 并转储解释。
例子:
User::where("favorite_color", "blue")->explain()->dd();
Run Code Online (Sandbox Code Playgroud)