私はJavaコードとMySQLデータベースとの接続が非常に遅いという問題があります。私はボトルネックがどこにあるのか分からない。MySQLとJDBCが本当に遅い、わからない理由
私のプログラムは多かれ少なかれチャットボットです。ユーザーが何かを入力すると、私のプログラムはその文を単語に分割し、単語ごとに単語をデータベースに送ります。そこに何かが見つかると、ユーザーは出力を取得します。 データベースは外部サーバーにありますが、私の隣にあるpcにも接続しようとしました。どちらも遅いです。
私は通常、どこにいても正常に動作する場所で接続を試みました。その場所では、ほとんどの場合、高速でした。
マイSQLコード:LCASE(sch.SCHLUESSELWORT)LIKE ' "+入力+" %' AND info.ID_INFO = sch.ID_INFO情報INFO FROM
SELECT info.INFORMATION、INFO_SCHLUESSELのSCH
注文BY info.PRIORITAET DESC LIMIT 1;
(ちょうどそれがSQLコードを理解するのに役立ちます場合は、思い出した:
schluessel =キー
Schluesselwortを=キーワード
prioritaet =優先)
私のJavaデータベース・コードは、多かれ少なかれ標準のものです:
文字列ドライバ= "com.mysql.jdbc.Driver";
文字列dbase = "jdbc:mysql:// bla";
文字列dbuser = "bla";
文字列dbpw = "bla";Class.forName(driver);
接続con = DriverManager.getConnection(dbase、dbuser、dbpw);
ステートメントstmt = con.createStatement();ResultSet 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ドライバ=新しいPoolingDriver();
driver.registerPool( "example"、connectionPool);
接続conn = DriverManager.getConnection( "jdbc:apache:commons:dbcp:example");
接続プールを使用していますか? – Thilo
いいえ、まだありません。しかし、私は今それを調べます。 –