1

実際には1000文字のテキストデータであるデータをデータベースにすばやく保存したいと考えています。どのくらい速いのか?1 秒あたり 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();
}

しかし、保存されていないデータはメモリ内にしか存在しないため、これは悪いコードです。停電すると、データが失われます。私は、persistent=true で JMS Queue を使用することを考えていました。しかし、私は推奨される方法を本当に知りません。

4

0 に答える 0