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
'MySql' 카테고리의 다른 글
MySQLi는 PHP에서 업데이트 문을 준비했습니다. (0) | 2021.02.10 |
---|---|
MySQL 날짜 열에 대한 MySQL 조건부 ORDER BY ASC / DESC (0) | 2021.02.10 |
MySQL 외래 키를 삭제할 수 없습니다 (0) | 2021.02.09 |
MySQL CAST 연산자를 사용하여 VARCHAR 열을 FLOAT로 정렬하면 MySQL에서 작동하지 않습니다. (0) | 2021.02.09 |
MySQL wpdb에서 IN ()을 사용하려고 할 때 문제 (0) | 2021.02.09 |
댓글