如何在laravel构建器上执行`explain select`

问题描述 投票:0回答:1

我知道我可以从查询日志中获取原始查询,粘贴所有绑定的变量(也在查询日志中找到),在查询的前面打一个explain,然后直接在mysql控制台中运行以获得查询的解释。...但是有没有更快的方法来获得解释?

理想情况下,我想做这样的事情:

$query = User::where("favorite_color", "blue");

dd($query->explain());

(显然,实际查询将更加复杂并且具有一些联接)

我尝试像这样添加explain

$query->selectRaw("explain select user.*");

但是这导致查询开始于:

select explain select...

...这只是无效的sql。

php mysql laravel explain
1个回答
0
投票

我想您可以使用fromQuery方法,在其中根据documentation传递原始sql和绑定。>

/**
 * Create a collection of models from a raw query.
 *
 * @param  string  $query
 * @param  array  $bindings
 * @return \Illuminate\Database\Eloquent\Collection
 */
public function fromQuery($query, $bindings = [])
{
    return $this->hydrate(
        $this->query->getConnection()->select($query, $bindings)
    );
}
© www.soinside.com 2019 - 2024. All rights reserved.