我想将实际上是 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 一起使用。但我真的不知道推荐的方式。