インメモリ データベース (私の場合は MySQL) を使用してクエリに応答するタイム クリティカルな Java アプリケーションがあります。
プロセスを高速化するために、複数のスレッドを使用することを考えました (複数のプロセッサが同時に動作できるようにするため)。したがって、私の最初の質問は、マルチスレッド環境でメモリ内テーブルをより高速に実行できるかどうかです。
この最初の質問に対する答えが「はい」の場合、これを行う方法についてアドバイスが必要です。私は2つのアプローチを試しました:
すべてのスレッドに同じ jdbc インスタンスを与えました。この戦術によるパフォーマンスの向上はありませんでした。
スレッドごとに新しいインスタンスを作成して、以前に作成したデータベースに接続しようとしました。
Class.forName("com.mysql.jdbc.Driver").newInstance(); conn = DriverManager.getConnection(url, username, password); this.executeQuery("USE myDatabase");
この 2 番目のバージョンでは、次のようなエラーが表示されます。
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 不明なデータベース 'rockit'
1 スレッド環境では、この時点でエラーは発生しません。