Java 如何使用数据库批量、高效和持久地存储数据?
我想存储数据,实际上是一个1000个字符的文本数据,快速进入数据库。多快?假设每秒有1000个数据 为了提高效率,我使用了名为“批量插入”的数据库功能。这是实现它的代码片段Java 如何使用数据库批量、高效和持久地存储数据?,java,queue,Java,Queue,我想存储数据,实际上是一个1000个字符的文本数据,快速进入数据库。多快?假设每秒有1000个数据 为了提高效率,我使用了名为“批量插入”的数据库功能。这是实现它的代码片段 private Queue q; public void store(MyData data) { q.add(data); } public void onStarted() { new Thread() { public void run() { while(t
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队列与persistent=true一起使用。但是我真的不知道推荐的方法。如果断电是真正的威胁,你最好投资一些UPS设备。这不是一种可以或不应该通过不使用批插入来修复的情况。