Tho*_*sen 1 php mysql doctrine doctrine-orm
我们正在运行一个巨大的平台,该平台具有用于多个前端的单个数据库。现在我们将尝试识别我们的慢查询,并更好地了解我们的流量来自哪个页面。
我的想法是在每个 sql 查询中注入页面名称作为注释,以便在查看数据库时能够看到它使用 SHOW FULL PROCESSLIST
最后它应该是这样的: /*PAGE NAME*/ SHOW FULL PROCESSLIST
如果我在 sequel pro 中这样做,那么评论似乎会被列出:
如何使用侦听器/订阅者注入自定义评论来更新每个学说查询?
Doctrine DBAL 允许您定义自己的 Connection 类。
doctrine:
dbal:
wrapper_class: App\DBAL\MyConnectionWrapper
Run Code Online (Sandbox Code Playgroud)
您可以根据需要实现Doctrine\DBAL\Connection和覆盖的子类executeQuery()。
class MyConnectionWrapper extends Connection
{
public function executeQuery($sql, array $params = [], $types = [], ?QueryCacheProfile $qcp = null)
{
$sql = '/*PAGE NAME*/ '.$sql;
return parent::executeQuery($sql, $params, $types, $qcp);
}
}
Run Code Online (Sandbox Code Playgroud)