我有一个时间关键的 JAVA 应用程序,它使用内存数据库(在我的例子中是 MySQL)来回答查询。
为了加快进程,我考虑过使用多个线程(以便多个处理器可以同时工作)。所以我的第一个问题是内存表是否可以在多线程环境中运行得更快。
如果第一个问题的答案是肯定的,那么我需要一些建议如何做到这一点。我尝试了两种方法:
我给了所有线程相同的 jdbc 实例。这种策略没有提高性能。
我尝试为每个线程创建新实例,并尝试将其连接到我之前创建的数据库:
Class.forName("com.mysql.jdbc.Driver").newInstance(); conn = DriverManager.getConnection(url, username, password); this.executeQuery("USE myDatabase");
在第二个版本中,我收到一条错误消息:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:未知数据库“rockit”
在单线程环境中,此时没有错误。