如何使用数据库批处理,高效且持久地存储数据?

时间:2013-07-04 03:38:26

标签: java queue

我想将实际上是1000个字符的文本数据存储到数据库中。多快?假设每秒1000个数据。

为了提高效率,我使用了名为“批量插入”的数据库功能。这是实现它的代码段。

private Queue q;

public void store(MyData data) {
    q.add(data);
}

public void onStarted() {
    new Thread() {
        public void run() {
            while(true) {
                    if (q.notEmpty()) {
                        List someData = new ArrayList();
                        q.drainTo(someData, BATCH_SIZE);
                        storeWithSqlBatch(someData);
                    }
                    sleep(100);
            }
        }
    }.start();
}

但这是一个糟糕的代码,因为未保存的数据只存在于内存中。当,断电,数据将丢失。我一直在考虑使用持久= true的JMS队列。但我真的不知道推荐的方式。

0 个答案:

没有答案