计算Golang中数据库查询的数量?

时间:2019-02-27 02:10:54

标签: mysql go

我正在尝试计算针对Golang API服务器的请求中针对数据库运行的查询数。这是为了优化+查找我们API中的瓶颈。

here是在Django中执行此操作的示例。

您知道在Golang中是否有一种简单的方法吗?

2 个答案:

答案 0 :(得分:4)

为了找到瓶颈,我建议直接进入MySQL数据库并启用慢速查询日志,然后将long_query_time缓慢设置为较低的毫秒值。

使用pt-query-digest之类的工具来帮助消化这些信息,从而获得类似查询的频率。攻击那些需要修复的慢查询,然后设置一个较低的值。

每个查询的实际计数实际上并没有那么有用。

从问题的角度解决问题时,测量每个接口的API响应时间将帮助您全面了解服务。

答案 1 :(得分:3)

没有我知道的简单解决方案。

您可以将数据库包装在自己的结构中,然后实现Exec()或直接在该结构上使用的任何函数。您的函数只会调用数据库一个,然后按您认为合适的方式对其进行计数。

可以在此处找到类似的示例,但带有记录器: How to log queries to database drivers?