सामान्यतया, आप निम्न में से किसी एक या अधिक का उपयोग कर सकते हैं:
- लेनदेन शुरू करें, सम्मिलित करें, प्रतिबद्ध करें
- क्वेरी में एक ही इंसर्ट में कई मान पैक करें
- सम्मिलित करने से पहले किसी भी बाधा को छोड़ दें और बड़े पैमाने पर डालने के बाद बाधाओं को बहाल करें (संभवतः प्राथमिक कुंजी को छोड़कर, हालांकि इसके बारे में निश्चित नहीं है)
- इसमें
insert into ... select
अगर उपयुक्त हो
पहला (लेनदेन का उपयोग करके) मदद करने की सबसे अधिक संभावना है, लेकिन मुझे यकीन नहीं है कि यह myisam टेबल पर काम करता है, innodb के साथ यह बहुत अच्छा काम करता है - मैं केवल उन लोगों का उपयोग करता हूं जब मुझे MySQL का उपयोग करने के लिए मजबूर किया जाता है, मैं पोस्टग्रेस्क्ल पसंद करता हूं ।
आपके विशिष्ट मामले में, डेटा की 100000 पंक्तियों को सम्मिलित करते हुए, आप निम्न कार्य कर सकते हैं:
INSERT INTO status(id, responseCode, lastUpdate) SELECT @row := @row + 1 as row, 503, NOW() FROM
(select 0 union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) t,
(select 0 union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) t2,
(select 0 union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) t3,
(select 0 union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) t4,
(select 0 union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) t5,
(SELECT @row:=0) t6;
मेरी मशीन पर इसका परीक्षण किया, मिला:
Query OK, 100000 rows affected (0.70 sec)
Records: 100000 Duplicates: 0 Warnings: 0
मुझे पूरा यकीन है कि आप 100000 पंक्तियों के लिए उससे अधिक तेज़ नहीं हो सकते।