2

I have an employee management application. I am using a MySQL database.

In my application, I have functionality like add /edit/delete /view.

Whenever I run any functionality, one query is fired in the database. Like in add employee, it will fire the insert query.

So I want to do something on my database, so that I see how many queries have been fired till date.

I don't want to do any changes on my Java code.

4

5 回答 5

2

您可以使用SHOW STATUS

SHOW GLOBAL STATUS LIKE 'Questions'

服务器状态变量中所述:

状态变量具有以下含义。

[ deletia ]

  • Questions

    服务器执行的语句数。Queries与变量不同,这仅包括客户端发送到服务器的语句,而不包括在存储程序中执行的语句。此变量不计算COM_PINGCOM_STATISTICSCOM_STMT_PREPARECOM_STMT_CLOSECOM_STMT_RESET命令。

请注意:

于 2012-12-06T10:39:14.327 回答
1

您应该执行如下所述的查询:

  1. 要获取 SELECT 查询计数,请执行Show global status like 'com_select';

  2. 要获取 UPDATE 查询计数,请执行Show global status like 'com_update';

  3. 要获取 DELETE 查询计数,请执行Show global status like 'com_delete';

  4. 要获取 INSERT 查询计数,请执行Show global status like 'com_insert';

您还可以分析一般日志或通过 MySQL 代理路由您的应用程序,以在服务器上执行所有查询。

于 2013-09-30T10:05:52.747 回答
0

如果您不想修改代码,则可以使用触发器在数据库上进行跟踪。限制是触发器只能在插入/更新/删除时触发,因此不能用于计算读取(选择)。

于 2012-12-06T11:08:59.947 回答
0

也许你的问题太“企业”和“生产”了。

当您使用 munin (http://munin-monitoring.org/)(其他监控工具有类似的扩展)时,您可以使用 mysql-monitoring 工具来显示有多少请求(在 Insert/Update/Loaddata/.. .) 你开火了。

使用这些工具,您可以查看使用情况和产生的负载。尤其是当数据发生变化时,可能会导致更多的访问/加载(缺少索引,由于 m:n 表大而导致的更多查询,...),您可以识别它。

它非常方便,您可以在休息时进行检查。无需打字,无需任何操作,只需查看图表即可。

于 2012-12-06T11:15:16.743 回答
0

我认为最准确的方法是配置数据库管理系统以记录所有事件,无需修改数据库或应用程序即可运行。

您会留下一个日志文件,这是一个可以按需分析的文本文件。

这是帮助您入门的通用查询日志手册页。

于 2012-12-06T11:23:57.587 回答