Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> MySql

JDBC में तैयार किए गए स्टेटमेंट स्टेटमेंट की तुलना में तेज़ क्यों होते हैं? समझाना?

<घंटा/>

स्टेटमेंट ऑब्जेक्ट का उपयोग करते हुए स्टेटमेंट्स को निष्पादित करते समय, विशेष रूप से स्टेटमेंट को सम्मिलित करते हुए, हर बार एक क्वेरी को निष्पादित किया जाता है और पूरे स्टेटमेंट को बार-बार संकलित और निष्पादित किया जाता है, जहां इन स्टेटमेंट्स के बीच एकमात्र अंतर स्टेटमेंट्स का मान होता है।

जबकि, तैयार विवरण एक पूर्व-संकलित विवरण है अर्थात क्वेरी को डेटाबेस में संकलित और संग्रहीत किया जाता है, इन प्लेस होल्डरों को मूल्यों और मूल्यों के बजाय प्लेस होल्डर (?) का उपयोग करके बाद में आपूर्ति की जाती है।

इस प्रकार, अनावश्यक संकलन और कथन के बार-बार निष्पादन से बचना।

उदाहरण

मान लीजिए, हमारे पास डेटासेट . नाम की एक तालिका है डेटाबेस में mobile_brand . कॉलम के साथ और इकाई_बिक्री , यदि हम स्टेटमेंट ऑब्जेक्ट का उपयोग करके इस तालिका में रिकॉर्ड सम्मिलित करना चाहते हैं तो कोड इस प्रकार होगा:

stmt.executeUpdate("insert into Dataset values('Iphone', 3000)");
stmt.executeUpdate("insert into Dataset values('Samsung', 4000)");
stmt.executeUpdate("insert into Dataset values('Nokia', 5000)");
stmt.executeUpdate("insert into Dataset values('Vivo', 1500)");
stmt.executeUpdate("insert into Dataset values('Oppo', 9000)");
stmt.executeUpdate("insert into Dataset values('MI', 6400)");
stmt.executeUpdate("insert into Dataset values('MotoG', 4360)");
stmt.executeUpdate("insert into Dataset values('Lenovo', 4100)");
stmt.executeUpdate("insert into Dataset values('RedMi', 4000)");
stmt.executeUpdate("insert into Dataset values('OnePlus', 6334)");

और प्रत्येक निष्पादित अद्यतन () . के लिए विधि आमंत्रण इसमें संपूर्ण विवरण संकलित और निष्पादित किया जाता है। यहां, यदि आप देखते हैं कि केवल कथन के मूल्यों को बदला जा रहा है और शेष क्वेरी को अनावश्यक रूप से संकलित किया जा रहा है।

यदि आप एक ही तालिका में समान डेटा सम्मिलित करने के लिए तैयार कथन का उपयोग करके सम्मिलित क्वेरी लिखते हैं, तो कोड इस तरह दिखता है:

PreparedStatement pstmt = con.prepareStatement("insert into Dataset values(?, ?)");

pstmt.setString(1, "Iphone");
pstmt.setInt(2, 3000);
pstmt.executeUpdate();

pstmt.setString(1, "Samsung");
pstmt.setInt(2, 4000);
pstmt.executeUpdate();

pstmt.setString(1, "Nokia");
pstmt.setInt(2, 5000);
pstmt.executeUpdate();

pstmt.setString(1, "Vivo");
pstmt.setInt(2, 1500);
pstmt.executeUpdate();

pstmt.setString(1, "Oppo");
pstmt.setInt(2, 900);
pstmt.executeUpdate();

pstmt.setString(1, "MI");
pstmt.setInt(2, 6400);
pstmt.executeUpdate();

pstmt.setString(1, "MotoG");
pstmt.setInt(2, 4360);
pstmt.executeUpdate();

pstmt.setString(1, "Lenovo");
pstmt.setInt(2, 4100);
pstmt.executeUpdate();

pstmt.setString(1, "RedMi");
pstmt.setInt(2, 4000);
pstmt.executeUpdate();

pstmt.setString(1, "MotoG");
pstmt.setInt(2, 4360);
pstmt.executeUpdate();

pstmt.setString(1, "OnePlus");
pstmt.setInt(2, 6334);
pstmt.executeUpdate();

यहां यदि आप देखते हैं कि इंसर्ट क्वेरी प्लेस होल्डर (?) के साथ तैयार की गई है और यह क्वेरी डेटाबेस में संकलित और संग्रहीत की जाती है और बाद में स्टेटमेंट के अनावश्यक निष्पादन से बचने के लिए, रेडीस्टेटमेंट इंटरफ़ेस के सेटर विधियों का उपयोग करके मूल्यों को पारित किया जाता है।

  1. 5 कारण क्यों स्मार्टफोन बेवकूफ फोन से ज्यादा सुरक्षित हैं

    इंटरनेट कनेक्टिविटी, ब्लूटूथ, अधिक पोर्ट, जीपीएस और अनगिनत ऐप्स के साथ, स्मार्टफोन एक गोपनीयता और सुरक्षा दुःस्वप्न हैं। लेकिन जरूरी नहीं कि आप डंबल फोन पर स्विच करके अपनी स्थिति में सुधार करें। यहां पांच ऐसे क्षेत्र दिए गए हैं जहां सुरक्षा के मामले में स्मार्टफोन का दबदबा है। 1. स्मार्टफ़ोन एन्क्

  1. पासफ़्रेज़ अभी भी पासवर्ड और फ़िंगरप्रिंट से बेहतर क्यों हैं

    उन दिनों को याद करें जब आप पासवर्ड को अपने पासवर्ड के रूप में सेट करते थे? कई लोग अभी भी इस तरह के बेहद असुरक्षित तरीकों का इस्तेमाल करते हैं, लेकिन यहां तक ​​​​कि विनम्र पासवर्ड भी विकसित हो गया है। अब हम जहां भी जाते हैं पासकोड या पासफ़्रेज़ का उपयोग करते हैं। वे आपके ऑनलाइन बैंकिंग, गेम खातों और

  1. डाउनलोड स्पीड की तुलना में अपलोड स्पीड इतनी धीमी क्यों है?

    यदि आपने कभी अपने इंटरनेट पर गति परीक्षण किया है, तो आपने शायद देखा है कि आपकी डाउनलोड गति की तुलना में, आपकी अपलोड गति थोड़ी दयनीय है। हालांकि, आप अकेले नहीं हैं:यह दुनिया भर में काफी हद तक आदर्श है। जुलाई 2018 के लिए स्पीडटेस्ट का विश्व औसत 46.41 एमबीपीएस नीचे, 22.48 ऊपर था। विषमता क्यों? सामान्य