Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用Java实现长时间运行的MySQL查询_Java_Mysql_Performance - Fatal编程技术网

用Java实现长时间运行的MySQL查询

用Java实现长时间运行的MySQL查询,java,mysql,performance,Java,Mysql,Performance,我使用的是MySQL 5.1、ApacheTomcat 7和MyBatis 3.1 我有一个代码如下的方法: for( Order o : orders) { List<Details> list = getDetails(o); //Create PDF report ... } 其中getDetails是一个执行存储过程的方法,需要花费一些时间来执行1到2秒,这里的问题是,我有很多接近4000的订单,我需要执行这个方法来处理每个订单,当我使用这个方法时,MySQ

我使用的是MySQL 5.1、ApacheTomcat 7和MyBatis 3.1

我有一个代码如下的方法:

for( Order o : orders) {
    List<Details> list = getDetails(o);
    //Create PDF report ...
}
其中getDetails是一个执行存储过程的方法,需要花费一些时间来执行1到2秒,这里的问题是,我有很多接近4000的订单,我需要执行这个方法来处理每个订单,当我使用这个方法时,MySQL进程的CPU使用率会上升到90-100%


这正常吗?执行getDetails后是否需要使用Thread.sleep?或者是否需要对查询进行一些修改?

CPU在那里工作。除非系统空闲,否则总有一个组件以100%的速度运行。如果是CPU,这只意味着你的硬盘不是瓶颈。@maaartinus你这么认为吗?@maaartinus,它是一个服务器,它对其他连接的用户有什么影响?现在它是有意义的。如果两个进程都在同一个CPU上运行,并且没有空闲的内核,这可能是不好的。或者不是。测量它肯定会有所帮助。给长时间运行的线程一个较低的优先级也会有所帮助,这样就可以更快地为不需要它的用户提供服务。也许你可以优化你的查询。。。或者你存储在数据库里的东西或者其他什么。。。处理每个订单所需的长时间运行的查询听起来不太好。但是我们需要详细的资料。可能是