设置mysql进程之间的优先级

时间:2012-04-18 16:34:47

标签: java mysql grails

我正在与MySQL,Grails和Java作斗争。

  1. 我有应用服务器,Grails应用程序在那里运行。
  2. 我有另一台带有mysql db的服务器。
  3. 我有一个Java应用程序,连接到服务器以导出csv文件中的数据。
  4. 我在数据库中有很多数据(1000万个寄存器),每隔15分钟Grails应用程序连接到数据库,以检查并保存新信息。正常的运作方式。

    我的问题是,当grails应用程序正在运行时,我想执行一个java应用程序,它导出数据库中的部分信息。但我的问题是这个过程非常缓慢,但有时只是。我会解释一下:

    1. 如果Grails应用程序正常运行,我的Java应用程序需要大约4天才能导出所有数据.Java进程需要大约0.3%的CPU。

    2. 如果我关闭了Tomcat,那么所有与DB的连接(在mySQL上显示processlist命令)大约需要40分钟 完成所有过程。 Java进程大约占85% CPU。

    3. 我不确定问题是什么,但我尝试了一切,我的问题是我无法一直停止我想要导出的grails应用程序。因此,有一些方法可以为进程之间提供优先级,以确保我的Java应用程序具有最高优先级?

      提前感谢您的回答,

1 个答案:

答案 0 :(得分:3)

这听起来像数据库锁定问题。我建议使用像innotop这样的工具,并仔细查看数据库中发生的事情。特别是,当您的grails应用程序运行时,我会仔细查看打开的表,锁和查询。