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

Laravel 5.7 . में एक लाख पंक्तियों को सम्मिलित/अपडेट करने का सबसे तेज़ तरीका

अक्षम करें autocommit और प्रविष्टि के अंत में मैन्युअल रूप से प्रतिबद्ध करें

MySQL 8.0 डॉक्स के अनुसार। (8.5.5 बल्क डेटा लोड हो रहा है InnoDB तालिकाओं के लिए )

आप ऑटो कमिट को बंद करके INSERT की गति बढ़ा सकते हैं:

Laravel में इसे करने का दूसरा तरीका Database Transactions का इस्तेमाल करना है :

DB::beginTransaction()

// Your inserts here

DB::commit()

INSERT का उपयोग करें एकाधिक VALUES . के साथ

साथ ही MySQL 8.0 डॉक्स के अनुसार (8.2.5.1 INSERT स्टेटमेंट्स को ऑप्टिमाइज़ करना ) आप कई VALUES . का उपयोग करके INSERT गति को अनुकूलित कर सकते हैं सिंगल इंसर्ट स्टेटमेंट पर।

Laravel के साथ ऐसा करने के लिए, आप बस insert() . में मानों की एक सरणी पास कर सकते हैं विधि:

DB::table('your_table')->insert([
   [
       'column_a'=>'value',
       'column_b'=>'value',
   ],
   [
       'column_a'=>'value',
       'column_b'=>'value',
   ],
   [
       'column_a'=>'value',
       'column_b'=>'value',
   ],
]);

डॉक्स के अनुसार, यह कई गुना तेज हो सकता है।

दस्तावेज़ पढ़ें

दोनों MySQL डॉक्स लिंक जो मैंने इस पोस्ट पर डाले हैं, उनमें INSERT गति बढ़ाने के लिए बहुत सारी युक्तियां हैं।

इसे डालने के लिए Laravel/PHP का उपयोग करने से बचें

यदि आपका डेटा स्रोत एक CSV फ़ाइल है (या हो सकता है), तो आप mysqlimport डेटा आयात करने के लिए।

CSV फ़ाइल से डेटा आयात करने के लिए PHP और Laravel का उपयोग करना एक ओवरहेड है, जब तक कि आपको डालने से पहले कुछ डेटा प्रोसेसिंग करने की आवश्यकता न हो।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. डेटा स्रोत ने कनेक्शन की स्थापना को अस्वीकार कर दिया, सर्वर से संदेश:बहुत अधिक कनेक्शन

  2. सर्वर पर mysql फ़ाइलें ले जाना

  3. रूबी ऑन रेल्स में दूसरे MySQL डेटाबेस से गतिशील कनेक्शन

  4. लार्वेल हिडन फील्ड ऑन कंडीशन

  5. चेतावनी:mysqli_connect ():(HY000/1045):उपयोगकर्ता 'रूट' @ 'लोकलहोस्ट' के लिए प्रवेश निषेध (पासवर्ड का उपयोग करके:नहीं)