我使用jdbi在java应用程序中查询mysql。我想记录在应用程序上执行的查询的相关指标,例如查询所花费的时间、执行查询的次数、获取句柄所花费的时间等。。尽管我的大多数查询都是通过一个准备好的语句来执行的,但我还是有一些查询将查询中的参数作为sql字符串的一部分来传递。例如
select * from products where category in ('a', 'b', 'c') and id = :id;
jdbi记录器将其输出为
select * from products where category in ('a', 'b', 'c') and id = ?;
将多个查询分组以分析它变得非常困难。有没有java语言的库可以帮助我将这些查询归纳成我喜欢的
select * from products where category in (?) and id = ?;
或者也许
select * from products where category in (?, ?, ?) and id = ?;
p、 我知道在sql查询中连接字符串是一个非常糟糕的设计。
1条答案
按热度按时间wsewodh21#
在mysql中,有两种方法,它们似乎都能满足您的需求:
慢日志:https://dev.mysql.com/doc/refman/5.7/en/slow-query-log.html
这个
performance_schema
: https://dev.mysql.com/doc/refman/5.7/en/performance-schema.html我想两个都可以
in (?, ?, ?) and id = ?
,并将其用作查询的“摘要”,以汇总类似的查询所用的时间等。