我正在尝试计算针对Golang API服务器的请求中针对数据库运行的查询数。这是为了优化+查找我们API中的瓶颈。
here是在Django中执行此操作的示例。
您知道在Golang中是否有一种简单的方法吗?
答案 0 :(得分:4)
为了找到瓶颈,我建议直接进入MySQL数据库并启用慢速查询日志,然后将long_query_time缓慢设置为较低的毫秒值。
使用pt-query-digest之类的工具来帮助消化这些信息,从而获得类似查询的频率。攻击那些需要修复的慢查询,然后设置一个较低的值。
每个查询的实际计数实际上并没有那么有用。
从问题的角度解决问题时,测量每个接口的API响应时间将帮助您全面了解服务。
答案 1 :(得分:3)
没有我知道的简单解决方案。
您可以将数据库包装在自己的结构中,然后实现Exec()
或直接在该结构上使用的任何函数。您的函数只会调用数据库一个,然后按您认为合适的方式对其进行计数。
可以在此处找到类似的示例,但带有记录器: How to log queries to database drivers?