본문 바로가기
MySql

MySQL과 JDBC가 정말 느립니다. 이유를 모르겠습니다.

by 베이스 공부 2021. 2. 10.
반응형

Java 코드와 MySQL 데이터베이스 간의 연결 속도가 너무 느려서 문제가 있습니다. 병목이 어딨는지 모르겠어요.

내 프로그램은 다소 챗봇입니다. 사용자가 무언가를 입력하면 내 프로그램이 문장을 단어로 분할하고 단어 당 단어를 데이터베이스로 보냅니다. 거기에서 무언가를 찾으면 사용자는 출력을 얻습니다. 데이터베이스는 외부 서버에 있지만 옆에있는 PC에도 연결을 시도했습니다. 둘 다 느립니다.

평소에 일하는 다른 곳에서 한 번 연결을 시도했는데 대부분의 시간이 빠릅니다.

내 SQL 코드 :

정보 정보에서 정보 선택, INFO_SCHLUESSEL sch
WHERE LCASE(sch.SCHLUESSELWORT) LIKE '" + input + "%' AND info.ID_INFO = sch.ID_INFO
정보에 의한 주문 PRIORITAET DESC LIMIT 1;

(SQL 코드를 이해하는 데 도움이된다면 기억하세요.
schluessel = key
Schluesselwort = key word
prioritaet = 우선 순위)

내 Java 데이터베이스 코드는 다소 표준적인 것입니다.

문자열 드라이버 = "com.mysql.jdbc.Driver";
String dbase = "jdbc:mysql://bla";
String dbuser = "bla";
문자열 dbpw = "bla";

Class.forName (드라이버);
Connection con = DriverManager.getConnection(dbase, dbuser, dbpw);
문장 stmt = con.createStatement ();

ResultSet rs = stmt.executeQuery (query);
while (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 driver = new PoolingDriver();
driver.registerPool("example",connectionPool);
연결 conn = DriverManager.getConnection ( "jdbc : apache : commons : dbcp : example");

 

해결 방법

 

문제의 원인이 연결 설정이라고 생각합니다. 시간이 얼마나 걸리는지 시간을 정하는 것이 좋습니다.

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


 

참조 페이지 https://stackoverflow.com/questions/1062905

 

 

반응형

댓글