2010-10-29 17 views

Respuesta

3

poolPreparedStatements es una configuración para el conjunto de conexiones JDBC de Tomcat y cachePrepStmts es una configuración para que Connector/J indique a MySQL que guarde en caché las instrucciones preparadas. Dos cosas completamente diferentes. cachePrepStmts es una configuración por conexión, pero Connector/J no se preocupa de si se está conectando directamente a un grupo de conexiones de base de datos oa MySQL, pero cachePrepStmts funciona de la mejor manera con conexiones persistentes (por ejemplo, grupos de conexiones). Usar cachePrepStmts con un grupo de conexiones es la configuración óptima. Usar poolPreparedStatements en Tomcat es abrir una lata de gusanos de administración de memoria (revisa los documentos de Tomcat para esta configuración y verás). En realidad, es mejor dejar que MySQL guarde en caché las declaraciones preparadas y permita que Tomcat agrupe las conexiones y no intente hacer que uno haga el trabajo del otro.

+0

Por lo tanto, está sugiriendo que Connector/J hará un mejor trabajo que DBCP para agrupar declaraciones preparadas, ¿verdad? Además, encuentro esto confuso: "Connector/J no se preocupa de si se está conectando a un grupo de conexiones de bases de datos o directamente a MySQL". Connector/J está en un nivel más bajo que DBCP, por lo que siempre se conecta directamente a MySQL, ¿no? – ykaganovich

+2

No, MySQL hará un mejor trabajo de almacenamiento en caché de las declaraciones preparadas que DBCP, por lo tanto, establezca el indicador cachePrepStmts en sus conexiones de Connector/J y deje la agrupación de instrucciones de preparación de DBCP sola. Connector/J se conecta directamente a MySQL y DBCP agrupa un grupo de conexiones Connector/J. Creo que el comentario mío que citó fue confuso y confuso. –

Cuestiones relacionadas