Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

Doctrine2 - एक शॉट में कई इंसर्ट

इस उत्तर के अनुसार , Doctrine2 आपको कई INSERT कथनों को एक में संयोजित करने की अनुमति नहीं देता है:

आप यहां Doctrine2 बैच प्रोसेसिंग के बारे में अधिक पढ़ सकते हैं:http://www .doctrine-project.org/blog/doctrine2-batch-processing.html

आप या तो डीबीएएल पर स्विच कर सकते हैं या इंसर्ट की एक निर्धारित राशि के बाद अपने इकाई प्रबंधक को फ्लश करके अपने डेटा को छोटे बैचों में संसाधित करने का सहारा ले सकते हैं:

$batchSize = 20;

foreach ($items as $i => $item) {
     $product = new Product($item['datas']);

     $em->persist($product);

     // flush everything to the database every 20 inserts
     if (($i % $batchSize) == 0) {
         $em->flush();
         $em->clear();
    }
}

// flush the remaining objects
$em->flush();
$em->clear();


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. CSV से mySQL डेटाबेस में डेटा लोड करें जावा+हाइबरनेट+स्प्रिंग

  2. रेल में एकाधिक तालिका जुड़ती है

  3. एक पीडीएफ फाइल को MySQL में स्टोर करें

  4. MySQL में InnoDB टेबल मौजूद हैं लेकिन कहते हैं कि डेटाबेस को नए सर्वर पर कॉपी करने के बाद वे मौजूद नहीं हैं

  5. पर्ल का उपयोग करके MySQL से कैसे कनेक्ट करें