Postgresql 9.4使用spring& amp;插入1亿行dbcp2,所有数据都丢失

时间:2016-05-03 03:08:29

标签: spring postgresql apache-commons-dbcp

我使用spring的junit代码(这对我来说很方便)将1亿行插入表中

enter image description here

插入代码如下,DAO包装mybatis映射器

    @Transactional
public void insert10Kcommit(){
    System.out.println(TransactionSynchronizationManager.isActualTransactionActive());
    long start = System.currentTimeMillis();
    for (int i = 0; i < 100000; i++) { //0.1M
        ShortUrl shortUrl = new ShortUrl();
        String fullLink = SecureUtil.randomNumericString(20);
        shortUrl.setFullLink(fullLink);
        shortUrl.setPassCode(12345678L);
        shortUrl.setEffStartTime(new Date());
        shortUrl.setEffEndTime(new Date());
        shortUrlDAO.create(shortUrl);
        //ShortUrl newShortUrl = shortUrlDAO.get(shortUrl.getId());
        //assertTrue(newShortUrl.equals(shortUrl));
    }
    count += 10;
    System.out.println(count + " W is insertd. takes: " + (System.currentTimeMillis() - start) / 1000.0 + " s");
}

@Test
public void insert_100M(){
    for (int i = 0; i < 10; i++) {
        for (int j = 0; j < 100; j++) {
            insert10Kcommit();
        }
    }
}

以上代码片段需要6个小时才能完成向postgres 9.4插入1亿行,但在此之后,1亿行“消失”, 以下查询需要太长时间,似乎100米行中有一些只是postgres有问题。我重复了这个实验5次,结果都是一样的。 enter image description here

但是另一个插入然后从psql中选择看起来正确 enter image description here

spring或dbcp2有什么问题吗?

任何人都可以帮助我吗?非常感谢。

0 个答案:

没有答案