अक्षम करें 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 का उपयोग करना एक ओवरहेड है, जब तक कि आपको डालने से पहले कुछ डेटा प्रोसेसिंग करने की आवश्यकता न हो।