Ich habe ein Problem mit einer wirklich langsamen Verbindung zwischen meinem Java-Code und einer MySQL-Datenbank. Ich weiß nicht, wo der Flaschenhals ist.JDBC mit MySQL wirklich langsam, weiß nicht, warum
Mein Programm ist mehr oder weniger ein Chatbot. Der Benutzer gibt etwas ein, mein Programm teilt den Satz in Wörter auf und sendet sie wortweise an die Datenbank. Wenn es dort etwas findet, erhält der Benutzer eine Ausgabe. Die Datenbank befindet sich auf einem externen Server, aber ich habe auch versucht, mich mit einem PC zu verbinden. Beides ist langsam.
Ich versuchte die Verbindung einmal an einem anderen Ort, wo ich normalerweise arbeite und dort war es schnell, die meiste Zeit.
My SQL-Code:
SELECT info.INFORMATION VON INFORMATIONEN Info, INFO_SCHLUESSEL sch
WHERE LCASE (sch.SCHLUESSELWORT) LIKE ' "+ Eingang +" %' AND info.ID_INFO = sch.ID_INFO
Bestellung von info.PRIORITAET DESC LIMIT 1;
(nur in Erinnerung, wenn es den SQL-Code zu verstehen, hilft:
schluessel = key
Schluesselwort = Schlüsselwort
prioritaet = Priorität)
Meine Java-Datenbank-Code ist mehr oder weniger Standard-Sachen :
Zeichenfolge driver = "com.mysql.jdbc.Driver";
Zeichenfolge dbase = "jdbc: mysql: // bla";
String dbuser = "bla";
Zeichenfolge dbpw = "bla";Class.forName (Treiber);
Verbindung con = DriverManager.getConnection (dbase, dbuser, dbpw);
Anweisung stmt = con.createStatement();Ergebnissatz rs = stmt.executeQuery (query);
während (rs.next())
{
ergebnis = rs.getString ("info.INFORMATION");
}rs.close();
stmt.close();
con.close();
edit:
ich diesen DBCP jetzt eine Zeit lang versucht haben, und ich kann nicht scheinen, um es zu arbeiten. Es scheint so langsam zu sein wie die alte Verbindung.Dies ist das Beispiel der von mir verwendeten Website:
GenericObjectPool connectionPool = neu GenericObjectPool (null);
ConnectionFactory connectionFactory = neu DriverManagerConnectionFactory ("jdbc: mysql: // bla", "bla", "bla");
PoolableConnectionFactory pooloalConnectionFactory = neue PoolableConnectionFactory (connectionFactory, connectionPool, null, null, false, true);
PoolingDriver-Treiber = new PoolingDriver();
driver.registerPool ("Beispiel", connectionPool);
Verbindung conn = DriverManager.getConnection ("jdbc: apache: commons: dbcp: example");
Verwenden Sie einen Verbindungspool? – Thilo
Nein, noch nicht. Aber ich werde jetzt nachsehen. –