私は2つのサーバーを持っています。1つはDB接続処理にSpringを使用するJavaアプリを使用し、もう1つはMySQLを使用しています。両方のサーバー間のping遅延は約100msです。
Javaサーバーは、DBへの一括挿入を一度に2000行使用しています。この一括挿入を行うには、100ミリ秒x2000挿入=200,000ミリ秒かかるようです。
このネットワーク遅延を最小限に抑える方法はありますか?トランザクションを使用すると、それを減らすのに役立ちますか?
どんなアイデアでも大歓迎です。
私は2つのサーバーを持っています。1つはDB接続処理にSpringを使用するJavaアプリを使用し、もう1つはMySQLを使用しています。両方のサーバー間のping遅延は約100msです。
Javaサーバーは、DBへの一括挿入を一度に2000行使用しています。この一括挿入を行うには、100ミリ秒x2000挿入=200,000ミリ秒かかるようです。
このネットワーク遅延を最小限に抑える方法はありますか?トランザクションを使用すると、それを減らすのに役立ちますか?
どんなアイデアでも大歓迎です。
他の答えが言うように、バッチを使用してみてください。ただし、MySQL JDBCドライバーがそれらを最適化しない場合、それは役に立ちません。その他の考えられる解決策については、こちらの回答を参照してください。JDBCバッチ挿入のパフォーマンス
トランザクションは、より多くのオーバーヘッドを与えるだけです。(それは確かにあなたがそれらを使うべきではないという意味ではありませんが。)私は物事をバッチで行うことが役立つかもしれないと思います。これにより、挿入ごとに新しいネットワーク接続を作成する際のオーバーヘッドが削減されます。可能であれば、Javaサーバーにキャッシュすることも検討してください。ただし、これは読み取りにのみ役立ち、書き込みには役立ちません。