1

我想将实际上是 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();
}

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

4

0 回答 0