मैं तैयार कथन कैश करने के लिए MySQL की क्षमता का लाभ कैसे उठा सकता हूं? तैयार बयानों का उपयोग करने का एक कारण यह है कि तैयार किए गए कथन को फिर से इस्तेमाल करने की आवश्यकता नहीं है यदि एक ही तैयार कथन का फिर से उपयोग किया जाना है।MySQL तैयार कथन कैशिंग का उपयोग कैसे करें?
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/mydb" +
"?cachePrepStmts=true", "user", "pass");
for (int i = 0; i < 5; i++) {
PreparedStatement ps = conn.prepareStatement("select * from MYTABLE where id=?");
ps.setInt(1, 1);
ps.execute();
}
conn.close()
उपर्युक्त जावा उदाहरण चलाने पर मुझे 5 जोड़े जोड़े और mysqld लॉग फ़ाइल में आदेश निष्पादित करें। लूप परिणामों के बाहर पीएस असाइनमेंट को एक सिंगल में तैयार करना और 5 पाठ्यक्रमों को निष्पादित करना। कनेक्शन पैरामीटर "cachePrepStmts = true" यहां कोई फर्क नहीं पड़ता है।
स्प्रिंग और हाइबरनेट का उपयोग करते हुए एक समान प्रोग्राम चलाते समय (1 या 5) भेजे गए कमांड तैयार करने की संख्या इस बात पर निर्भर करती है कि cachePrepStmts कनेक्शन पैरामीटर सक्षम है या नहीं। Hacheernate कैशPrepStmts सेटिंग का लाभ लेने के लिए तैयार कथन निष्पादित कैसे करता है? क्या शुद्ध जेडीबीसी का उपयोग करके इसका नकल करना संभव है?
मैं MySQL सर्वर 4.1.22 और mysql-कनेक्टर-जावा-5.0.4.jar