사용자 도구

사이트 도구


database:mysql:jdbc

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
다음 판 양쪽 다음 판
database:mysql:jdbc [2015/10/10 20:21]
kwon37xi
database:mysql:jdbc [2015/11/15 16:32]
kwon37xi [PreparedStatement 분석]
줄 9: 줄 9:
     * MySQL JDBC 드라이버 기본은 ClientPreparedStatement : 이는 MySQL에만 있는 개념으로 사실은 PreparedStatement를 흉내낸 것일 뿐 진짜 PreparedStatement가 아니다.     * MySQL JDBC 드라이버 기본은 ClientPreparedStatement : 이는 MySQL에만 있는 개념으로 사실은 PreparedStatement를 흉내낸 것일 뿐 진짜 PreparedStatement가 아니다.
     * MySQL 5.0 이하에서는 PreparedStatement 사용으로 인한 이점이 거의 없어서 ClientPreparedStatement로 사용해도 무관하다.     * MySQL 5.0 이하에서는 PreparedStatement 사용으로 인한 이점이 거의 없어서 ClientPreparedStatement로 사용해도 무관하다.
-    * MySQL 5.1 이상에서는 제대로 PreparedStatement가 서버사이드에서 구현되었고 PrepraedStatement에도 쿼리 캐시가 적용되기 때문에 ''useServerPrepStmts=true''를 사용하는 이 좋다.+    * MySQL 5.1 이상에서는 제대로 PreparedStatement가 서버사이드에서 구현되었고 PrepraedStatement에도 쿼리 캐시가 적용되었다. - 근데 테스트해보니 안빠르고 오히려 더 느린데?? 테스트 철저히 하고 사용여부 결정할 것.
   * PreparedStatemtn 사용 분석<code sql>   * PreparedStatemtn 사용 분석<code sql>
 SELECT * FROM information_schema.global_status SELECT * FROM information_schema.global_status
줄 103: 줄 103:
 ===== Ping Validation ===== ===== Ping Validation =====
   * [[http://dev.mysql.com/doc/connector-j/en/connector-j-usagenotes-j2ee-concepts-connection-pooling.html|MySQL :: MySQL Connector/J Developer Guide :: 7 Connection Pooling with Connector/J]]에서 **Validation Query** 항목 검사.   * [[http://dev.mysql.com/doc/connector-j/en/connector-j-usagenotes-j2ee-concepts-connection-pooling.html|MySQL :: MySQL Connector/J Developer Guide :: 7 Connection Pooling with Connector/J]]에서 **Validation Query** 항목 검사.
-  * 쿼리가 ''/* ping */'' 으로 시작하면 MYSQL JDBC 드라이버는 이 쿼리를 실제로 날리지 않고, MySQL 서버에 살아있는지 여부만 체크하는 통신을 수행한다.+  * 쿼리가 ''/* ping */'' 으로 시작하면 MYSQL JDBC 드라이버는 이 쿼리를 실제로 날리지 않고, MySQL 서버에 살아있는지 여부만 체크하는 통신을 수행한다. ''Statement'', ''PreparedStatement'' 상관없이 작동한다.
   * 공백하나 다른 것 없이 정확히 ''/* ping */''와 완전히 동일한 문자열로 시작하는 쿼리여야 한다.   * 공백하나 다른 것 없이 정확히 ''/* ping */''와 완전히 동일한 문자열로 시작하는 쿼리여야 한다.
   * ''ReplicationConnection''이나 ''LoadBalancedConnection'' 사용시에는 연결된 모든 커넥션이 ping을 실행한다.   * ''ReplicationConnection''이나 ''LoadBalancedConnection'' 사용시에는 연결된 모든 커넥션이 ping을 실행한다.
   * JDBC4 의 [[http://docs.oracle.com/javase/7/docs/api/java/sql/Connection.html#isValid%28int%29|Connection.isValid(int)]]도 동일한 역할을 한다.   * JDBC4 의 [[http://docs.oracle.com/javase/7/docs/api/java/sql/Connection.html#isValid%28int%29|Connection.isValid(int)]]도 동일한 역할을 한다.
  
database/mysql/jdbc.txt · 마지막으로 수정됨: 2024/01/16 09:53 저자 kwon37xi