2010-10-29 9 views

risposta

3

poolPreparedStatements è un'impostazione per il pool di connessione JCBC Tomcat e cachePrepStmts è un'impostazione per Connector/J per indicare a MySQL di memorizzare le istruzioni preparate nella cache. Due cose completamente diverse. cachePrepStmts è un'impostazione per connessione, ma Connector/J non si preoccupa di connettersi direttamente a un pool di connessioni di database oa MySQL, tuttavia cachePrepStmts funziona al meglio con le connessioni persistenti (ad esempio i pool di connessione). Utilizzare cachePrepStmts con un pool di connessioni è la configurazione ottimale. L'utilizzo di poolPreparedStatements in Tomcat consiste nell'aprire una lattina di worm di gestione della memoria (controlla i documenti Tomcat per questa impostazione e vedrai). In realtà, è meglio lasciare a MySQL la cache delle istruzioni preparate e lasciare che Tomcat raccolga le connessioni e non provi a fare in modo che uno faccia il lavoro dell'altro.

+0

Quindi, stai suggerendo che Connector/J farà un lavoro migliore di DBCP per il raggruppamento di istruzioni preparate, giusto? Inoltre, trovo questo confuso: "Connector/J non si preoccupa di connettersi a un pool di connessioni di database o direttamente a MySQL". Connector/J è a un livello inferiore rispetto a DBCP, quindi si connette sempre a MySQL direttamente, giusto? – ykaganovich

+2

No, MySQL svolgerà un lavoro migliore di memorizzazione nella cache di istruzioni preparate rispetto a DBCP, quindi imposta il flag cachePrepStmts nelle connessioni Connector/J e lascia il pooling dell'istruzione prep DBCP da solo. Connector/J si connette direttamente a MySQL e DBCP raggruppa un sacco di connessioni Connector/J. Immagino che il mio commento sia confuso e confuso. –

Problemi correlati