JDBC与MySQL真的很慢,不知道为什么(JDBC with MySQL really slow,

2019-06-24 13:03发布

我有我的Java代码和MySQL数据库之间的很慢的连接有问题。 我不知道在哪里的瓶颈是。

我的计划是多还是少一个聊天机器人。 用户类型的东西,我的程序拆分成句的话,并将其发送每个字的字到数据库。 如果找到的东西在那里,用户得到的输出。 该数据库是一个外部服务器上,但我也试图连接到一台PC在我旁边。 无论是缓慢的。

我试图在另一个地方的连接一次,然后在那里我正常工作,有它速度快,大部分时间。

我的SQL代码:

SELECT info.INFORMATION从信息资讯,INFO_SCHLUESSEL SCH
WHERE LCASE(sch.SCHLUESSELWORT)LIKE ' “+输入+” %' AND info.ID_INFO = sch.ID_INFO
为了通过info.PRIORITAET DESC LIMIT 1;

(只记得,如果它有助于理解的SQL代码:
schluessel =键
Schluesselwort =关键词
prioritaet =优先级)

我的Java数据库代码或多或少标准的东西:

串驱动器= “com.mysql.jdbc.Driver”;
串质数据库= “JDBC:MySQL的:// BLA”;
串DBUSER = “BLA”;
串dbpw = “BLA”;

的Class.forName(驱动器);
连接CON =的DriverManager.getConnection(数据库,DBUSER,dbpw);
语句stmt = con.createStatement();

结果集RS = stmt.executeQuery(查询);
而(rs.next())
{
ergebnis = rs.getString( “info.INFORMATION”);
}

rs.close();
stmt.close();
con.close();

编辑:

现在我已经试过这DBCP了一会儿,我似乎无法得到它的工作。 这似乎是因为旧的连接慢。 这是我使用该网站提供的例子:

GenericObjectPool连接池=新GenericObjectPool(NULL);
连接工厂的connectionFactory =新DriverManagerConnectionFactory( “JDBC:MySQL的:// BLA”, “血乳酸”, “血乳酸”);
PoolableConnectionFactory poolableConnectionFactory =新PoolableConnectionFactory(connectionFactory的,连接池,NULL,NULL,FALSE,TRUE);
PoolingDriver驱动=新PoolingDriver();
driver.registerPool( “示例”,连接池);
连接康恩=的DriverManager.getConnection( “JDBC:阿帕奇:公地:DBCP:例如”);

Answer 1:

我怀疑这是导致该问题的连接设置。 这将是值得定时多久,这需要:

Connection con = DriverManager.getConnection(dbase, dbuser, dbpw);

如果是这样,检查出的Apache下议院DBCP ,它允许你池中的数据库连接。



Answer 2:

嗯,我觉得这是值得的design.There讨论一些事情,你可以为了提高性能做。 既然你在这里没有什么坚持,它能够更好地预加载在内存中的所有数据在一些自定义的Java对象,地图,列表或什么,然后做一个内存中查找的单词,并获得满意的结果。 另一种方法可以让你不继续使用批处理语句,并创建和释放每个字连接。 哦,如果使用批处理语句确保您的批量大小设置为一个适当的数字,最好是素数



文章来源: JDBC with MySQL really slow, don't know why
标签: java mysql jdbc