我有一个employee management
申请。我正在使用MySQL数据库。
在我的应用程序中,我有add /edit/delete /view
等功能。
每当我运行任何功能时,都会在数据库中触发一个查询。与添加员工一样,它会触发insert
查询。
所以我想在我的数据库上做一些事情,这样我就可以看到到目前为止已经发出了多少查询。
我不想对我的Java代码进行任何更改。
答案 0 :(得分:2)
您可以使用SHOW STATUS
:
SHOW GLOBAL STATUS LIKE 'Questions'
状态变量具有以下含义。
[ deletia ]
服务器执行的语句数。这仅包括客户端发送到服务器的语句,而不包括
Queries
变量中存储的程序中执行的语句。此变量不会计入COM_PING
,COM_STATISTICS
,COM_STMT_PREPARE
,COM_STMT_CLOSE
或COM_STMT_RESET
命令。
请注意:
在发出FLUSH STATUS
时重置统计信息。
SHOW STATUS
命令本身就是一个声明,会增加Questions
计数器。
这些统计信息是服务器范围的,因此将包括同一服务器上的其他数据库(如果存在)-a feature request for per-database statistics自2006年1月以来已开放;在此期间,可以从google-mysql-tools/UserTableMonitoring获得每表统计信息。
答案 1 :(得分:1)
您应该执行如下所述的查询:
要获取SELECT查询计数,请执行Show global status like 'com_select';
要获取UPDATE查询计数,请执行Show global status like 'com_update';
要获取DELETE查询计数,请执行Show global status like 'com_delete';
要获取INSERT查询计数,请执行Show global status like 'com_insert';
您还可以分析常规日志或通过MySQL代理路由您的应用程序,以获取在服务器上执行的所有查询。
答案 2 :(得分:0)
如果您不想修改代码,则可以使用触发器在数据库上跟踪此代码。限制是触发器只能在插入/更新/删除时触发,因此不能用于计数读取(选择)。
答案 3 :(得分:0)
也许这对你的问题来说太过“企业”和“生产”。
当你使用munin(http://munin-monitoring.org/)(其他监控工具有类似的扩展)时,你可以使用mysql监控工具来显示有多少请求(在Insert / Update / Loaddata中拆分) / ...)你正在解雇。
使用这些工具,您可以看到正在生成的使用情况和负载。 特别是当数据发生变化时,可能会导致更多的访问/加载(缺少索引,因为大的m:n-tables更多的查询,...),您就会认出它。
非常方便,您可以在休息时进行检查。没有打字,没有东西,只需查看图表。
答案 4 :(得分:0)
我认为最精确的方法是,无需修改数据库或应用程序即可运行,将配置数据库管理系统以记录所有事件。
您将留下一个日志文件,该文件是可以按需分析的文本文件。
以下是The General Query Log manual page,可以帮助您入门。