Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में एक साथ कई पंक्तियाँ कैसे डालें?


एक INSERT कथन में कई मान सेट के साथ बल्क इन्सर्ट

MySQL एक ही INSERT कथन में अल्पविराम से अलग किए गए कई मान सेट डालने का समर्थन करता है। यह अलग-अलग INSERT कथनों की तुलना में बहुत तेज़ है।

सिंटैक्स

INSERT INTO टेबल_नाम (कॉलम1, कॉलम2, ...)
VALUES (मान1, मान2, ...), (मान1, मान2, ...), ...;

उदाहरण

1. टेबल बनाएं

mysql> CREATE TABLE InsertMultipleRowsDemo (
    -> Id INT,
    -> Name VARCHAR(200),
    -> Age INT
    -> );

2. एक कथन में 5 पंक्तियाँ डालें

mysql> INSERT INTO InsertMultipleRowsDemo(Id, Name, Age) VALUES
    -> (1, 'John', 23),
    -> (2, 'Carol', 24),
    -> (3, 'Johnson', 21),
    -> (4, 'Smith', 20),
    -> (5, 'David', 26);

आउटपुट: Query OK, 5 rows affected (0.31 sec) Records: 5 Duplicates: 0 Warnings: 0

3. सत्यापित करें

mysql> SELECT * FROM InsertMultipleRowsDemo;
+------+---------+------+
| Id   | Name    | Age  |
+------+---------+------+
| 1    | John    | 23   |
| 2    | Carol   | 24   |
| 3    | Johnson | 21   |
| 4    | Smith   | 20   |
| 5    | David   | 26   |
+------+---------+------+

प्रदर्शन लाभ

  • नेटवर्क राउंड-ट्रिप कम: एक कथन बनाम कई
  • पार्सिंग ओवरहेड कम: एक बार पार्स, कई बार निष्पादित
  • ट्रांजैक्शन लॉग दक्षता: InnoDB में एक ट्रांजैक्शन के रूप में लॉग किया जाता है

बड़े बल्क इन्सर्ट के लिए सर्वोत्तम अभ्यास

  • बैच आकार: प्रति कथन 1000-5000 पंक्तियाँ (पैकेट आकार सीमा max_allowed_packet से बचने के लिए)
  • इंडेक्स अक्षम करें (यदि संभव हो): ALTER TABLE टेबल DISABLE KEYS (केवल MyISAM), इन्सर्ट के बाद ENABLE KEYS
  • LOAD DATA INFILE का उपयोग करें: CSV/TSV फ़ाइलों से लोड करने के लिए और भी तेज़
  • ट्रांजैक्शन: स्पष्ट ट्रांजैक्शन में लपेटें यदि ऑटोकमिट बंद है

IGNORE और ON DUPLICATE KEY UPDATE

-- डुप्लिकेट को अनदेखा करें
INSERT IGNORE INTO टेबल (कॉलम) VALUES (...), (...);

-- डुप्लिकेट पर अपडेट करें
INSERT INTO टेबल (कॉलम) VALUES (...), (...)
ON DUPLICATE KEY UPDATE कॉलम = VALUES(कॉलम);
  1. - MySQL में कई पंक्तियाँ प्रभावी ढंग से चुनना

    इंडेक्स और IN() क्लॉज से कुशल पंक्ति चयन प्राइमरी की या इंडेक्स पर IN() क्लॉज का उपयोग करके कई विशिष्ट आईडी की पंक्तियाँ एक क्वेरी में कुशलता से प्राप्त करें। तालिका और इंडेक्स CREATE INDEX id_index ON DemoTable1501(Id); डेटा डालना (220, www.gmail.com), (350, www.youtube.com); कुशल चयन क्वेरी

  1. - MySQL में कई टेबल्स से Count(*) पंक्तियों की गिनती कैसे करें?

    MySQL में एकाधिक टेबल्स से पंक्तियों की गिनती MySQL में कई टेबल्स से पंक्तियों की संख्या प्राप्त करने के लिए, आप सबक्वेरी का उपयोग करके प्रत्येक टेबल की गिनती अलग-अलग प्राप्त कर सकते हैं और फिर उन्हें एक ही परिणाम सेट में जोड़ सकते हैं। सिंटैक्स SELECT (SELECT COUNT(*) FROM yourTableName1) AS

  1. - MySQL में INFORMATION_SCHEMA से एकाधिक डेटाबेस में टेबल पंक्तियों का कुल योग

    MySQL के INFORMATION_SCHEMA.TABLES से TABLE_ROWS कॉलम का उपयोग करके एकाधिक डेटाबेस में समान नाम वाली टेबलों की कुल पंक्ति संख्या प्राप्त कर सकते हैं। उदाहरण: दो डेटाबेस में समान टेबल नाम 1. web डेटाबेस में टेबल INSERT INTO DemoTable1568 VALUES(Chris), (Bob), (David); 2. sample डेटाबेस में टेबल