PHP PDO MySQL में मल्टीपल रो इंसर्शन को ऑप्टिमाइज़ करना
जब PHP के PDO का उपयोग करके MySQL डेटाबेस में मल्टीपल रो इंसर्शन डालने की आवश्यकता का सामना करना पड़ता है, तो वहां विचार करने के लिए दो प्राथमिक दृष्टिकोण हैं। आइए इन विकल्पों का पता लगाएं और प्रदर्शन और सुरक्षा के लिए सर्वोत्तम अभ्यास निर्धारित करें।
दृष्टिकोण 1: व्यक्तिगत पंक्ति सम्मिलन
इस दृष्टिकोण में सम्मिलित की जाने वाली प्रत्येक पंक्ति के लिए एक विवरण तैयार करना शामिल है :
$rows = [(1,2,3), (4,5,6), (7,8,9) ... ]; $sql = "insert into `table_name` (col1, col2, col3) values (?,?,?)"; $stmt = $db->prepare($sql); foreach($rows as $row) { $stmt->execute($row); }
हालाँकि यह विधि सीधी है, इसके लिए कई तैयारी और निष्पादन कार्यों की आवश्यकता होती है। यह प्रदर्शन को प्रभावित कर सकता है, विशेष रूप से बड़े डेटासेट के लिए। पंक्तियाँ = [(1,2,3), (4,5,6), (7,8,9) ... ]; $sql = "`table_name` (col1, col2, col3) मानों में डालें"; $paramArray = सरणी(); $sqlArray = सरणी(); foreach($पंक्तियों को $पंक्ति के रूप में) { $sqlArray[] = '(' . implode(',', array_fill(0, count($row), '?')) . ')'; foreach($पंक्ति $तत्व के रूप में) { $paramArray[] = $तत्व; } } // $sqlArray इस तरह दिखेगा: ["(?,?,?)", "(?,?,?)", ... ] // आपका $paramArray मूलतः $rows का एक चपटा संस्करण होगा। $sql .= implode(',', $sqlArray); $stmt = $db->तैयार करें($sql); $stmt->execute($paramArray);
यह दृष्टिकोण एक ही तैयार कथन में एकाधिक पंक्ति सम्मिलन को जोड़ता है और ऑपरेशन निष्पादित करता है। यह प्रत्येक पंक्ति के लिए व्यक्तिगत विवरण तैयार करने और निष्पादन की आवश्यकता को समाप्त करके ओवरहेड को कम करता है। छोटे डेटासेट के लिए अंतर नगण्य हो सकता है। हालाँकि, बड़े डेटासेट के लिए या ऐसे परिदृश्यों में जहां प्रदर्शन महत्वपूर्ण है, बैच दृष्टिकोण पर विचार किया जाना चाहिए।
सुरक्षा विचार$rows = [(1,2,3), (4,5,6), (7,8,9) ... ]; $sql = "insert into `table_name` (col1, col2, col3) values "; $paramArray = array(); $sqlArray = array(); foreach($rows as $row) { $sqlArray[] = '(' . implode(',', array_fill(0, count($row), '?')) . ')'; foreach($row as $element) { $paramArray[] = $element; } } // $sqlArray will look like: ["(?,?,?)", "(?,?,?)", ... ] // Your $paramArray will basically be a flattened version of $rows. $sql .= implode(',', $sqlArray); $stmt = $db->prepare($sql); $stmt->execute($paramArray);निष्कर्ष
PHP में कई पंक्तियों को सम्मिलित करने का सबसे अच्छा तरीका PDO MySQL आपके एप्लिकेशन की विशिष्ट आवश्यकताओं पर निर्भर करता है। छोटे डेटासेट या परिदृश्यों के लिए जहां प्रदर्शन प्राथमिक चिंता नहीं है, व्यक्तिगत पंक्ति प्रविष्टि दृष्टिकोण पर्याप्त हो सकता है। बड़े डेटासेट के लिए या प्रदर्शन-महत्वपूर्ण स्थितियों में, बैच पंक्ति प्रविष्टि दृष्टिकोण बेहतर दक्षता प्रदान करता है। हालाँकि, संभावित कमजोरियों को रोकने के लिए सुरक्षा उपायों पर सावधानीपूर्वक विचार करने की आवश्यकता है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3