springdata crudRepository变得非常慢

时间:2017-11-10 03:14:40

标签: java mysql spring-data

开始时,循环进行得非常快,几小时后变慢,单个增量平均需要10秒。 我创建了一个ArrayList,以便在处理完数据后保存所有内容。 还尝试了batch_size但没有显着的改进。 我使用的是mysql5.7,innodb,utf8mb4,我在db中直接插入要快得多。

Controller.java

// call 4000 times
Observable.fromArray(postTodayHolding).subscribe(System.out::println);

dmkm

public @ResponseBody String postTodayHolding() throws IOException, ParseException {
        List<AccountHolding> cshdlist = new ArrayList<AccountHolding>();
        // pnlResultNormal size about 400
        for (Integer q = 0; q < pnlResultNormal.size(); q += 2) {                       
            AccountHolding cshd = new AccountHolding();                     
            cshd.setIdDri(fk);
            String partID = pnlResultNormal.get(q).text().replace("\u00a0", "");
            String holding = pnlResultNormal.get(q+1).text().replace("\u00a0", "");
            CcassParticipants results = pplist.stream().filter(itm -> partID.equals(itm.getPartId())).findAny().orElse(null);
             cshd.setPartId(results.getId());               
             cshd.setHolding(getBDformatValue(holding));
             cshdlist.add(cshd);
        }                   
        AccountHoldingRepository.save(cshdlist);

... another code

我想我发现了这个问题,当我在顶部&#39;在终端中,它一直显示大约100%的cpu,并且在完成cron工作几个小时后几乎吃掉了我的所有内存。 java 99.6 01:51:12 42/1 1 122 3627M 0B 219M 93688 72225 running *0[1] 0.00000 0.00000 501 1926111 467

0 个答案:

没有答案