【发布时间】:2010-11-06 23:13:43
【问题描述】:
我的 Java 代码和 MySQL 数据库之间的连接速度非常慢。我不知道瓶颈在哪里。
我的程序或多或少是一个聊天机器人。用户输入一些内容,我的程序将句子拆分为单词并将每个单词的单词发送到数据库。如果它在那里找到了一些东西,用户就会得到一个输出。 数据库在外部服务器上,但我也尝试连接到我旁边的电脑。两者都很慢。
我在另一个我通常工作的地方尝试了一次连接,并且大部分时间都很快。
我的 SQL 代码:
从信息信息中选择 info.INFORMATION,INFO_SCHLUESSEL sch
WHERE LCASE(sch.SCHLUESSELWORT) LIKE '" + input + "%' AND info.ID_INFO = sch.ID_INFO
Order BY info.PRIORITAET DESC LIMIT 1;
(记起来了,如果对理解sql代码有帮助的话:
schluessel = 钥匙
Schluesselwort = 关键词
优先级 = 优先级)
我的 Java 数据库代码或多或少是标准的东西:
字符串驱动 = "com.mysql.jdbc.Driver";
字符串 dbase = "jdbc:mysql://bla";
字符串 dbuser = "bla";
字符串 dbpw = "bla";Class.forName(驱动程序);
Connection con = DriverManager.getConnection(dbase, dbuser, dbpw);
语句 stmt = con.createStatement();结果集 rs = stmt.executeQuery(query);
而 (rs.next())
{
ergebnis = rs.getString("info.INFORMATION");
}rs.close();
stmt.close();
con.close();
编辑:
我已经尝试了这个 DBCP 一段时间,但我似乎无法让它工作。它似乎和旧连接一样慢。这是我使用的网站提供的示例:
GenericObjectPool connectionPool = new GenericObjectPool(null);
ConnectionFactory connectionFactory = new DriverManagerConnectionFactory("jdbc:mysql://bla", "bla", "bla");
PoolableConnectionFactory poolableConnectionFactory = new PoolableConnectionFactory(connectionFactory,connectionPool,null,null,false,true);
PoolingDriver 驱动程序 = new PoolingDriver();
driver.registerPool("example",connectionPool);
连接连接 = DriverManager.getConnection("jdbc:apache:commons:dbcp:example");
【问题讨论】:
-
你在使用连接池吗?
-
不,还没有。但我现在会调查一下。