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

MySQL में एक ही INSERT से बड़ी संख्या में पंक्तियाँ तेज़ी से डालें

बड़ी संख्या में पंक्तियाँ डालने का सबसे तेज़ तरीका एक ही INSERT स्टेटमेंट में कई मान सूचियाँ देना है। यह नेटवर्क राउंड-ट्रिप और पार्सिंग ओवरहेड को कम करता है।

सिंटैक्स

INSERT INTO yourTableName VALUES
(NULL, 'val1', 'val2'),
(NULL, 'val1', 'val2'),
... N पंक्तियाँ; 

टेबल बनाएं

mysql> CREATE TABLE DemoTable1839 (
    ClientId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    ClientName VARCHAR(20),
    ClientAge INT
);

एक INSERT में 8 पंक्तियाँ डालें

mysql> INSERT INTO DemoTable1839 VALUES
(NULL,'Chris',29),(NULL,'Chris',29),(NULL,'Chris',29),(NULL,'Chris',29),
(NULL,'Chris',29),(NULL,'Chris',29),(NULL,'Chris',29),(NULL,'Chris',29);

Query OK, 8 rows affected (0.00 sec)

परिणाम

+----------+------------+-----------+
| ClientId | ClientName | ClientAge |
+----------+------------+-----------+
|        1 | Chris      |        29 |
|        2 | Chris      |        29 |
|        3 | Chris      |        29 |
|        4 | Chris      |        29 |
|        5 | Chris      |        29 |
|        6 | Chris      |        29 |
|        7 | Chris      |        29 |
|        8 | Chris      |        29 |
+----------+-----------+

प्रदर्शन युक्तियाँ

  • बैच आकार: 1000-5000 पंक्तियाँ प्रति INSERT इष्टतम (अधिकतम पैकेट आकार max_allowed_packet ध्यान में रखें)।
  • ट्रांजैक्शन: कई INSERT को START TRANSACTION; ... COMMIT; में लपेटें।
  • इंडेक्स अक्षम करें: बड़ी लोड के लिए ALTER TABLE ... DISABLE KEYS (केवल MyISAM) फिर ENABLE KEYS।
  • LOAD DATA INFILE CSV/TSV के लिए सबसे तेज़।

तुलना

विधिसापेक्ष गति
एकल INSERT प्रति पंक्तिधीमा (बेसलाइन)
बहु-मूल्य INSERT (बैच)~10-50x तेज़
LOAD DATA INFILE~100x तेज़
  1. - MySQL क्वेरी में IF() फ़ंक्शन का सही उपयोग

    MySQL में IF() फ़ंक्शन का उपयोग SELECT सूची में सशर्त मान लौटाने के लिए करें। यह तीन आर्गुमेंट लेता है: शर्त, सच मान, झूठ मान। सिंटैक्स SELECT कॉलम_नाम, IF(शर्त, सच_मान, झूठ_मान) FROM टेबल_नाम; उदाहरण: मान 550 से तुलना 1. टेबल बनाएं CREATE TABLE DemoTable1571 (Id INT, Value INT); 2. डेटा डालें

  1. - MySQL टेबल में JSON डेटा कैसे डालें?

    MySQL 5.7+ में नेटिव JSON डेटा प्रकार है जो JSON दस्तावेज़ों को मान्य, संग्रहीत और क्वेरी करने की अनुमति देता है। JSON कॉलम वाली टेबल बनाएं mysql> CREATE TABLE DemoTable1832 ( ListOfNames JSON ); JSON सरणी डालें mysql> INSERT INTO DemoTable1832(ListOfNames) VALUES([Sam, Mike, Carol]); my

  1. - Java में MySQL LIKE के साथ खोज वेरिएबल का उपयोग करते समय उद्धरण चिह्नों का सही उपयोग

    सही सिंटैक्स String sqlQuery = SELECT * FROM yourTableName WHERE yourColumnName LIKE % + searchVariable + %; उदाहरण टेबल बनाएं: INSERT INTO demo19 (name) VALUES (John Smith), (David Miller), (Adam Smith), (Chris Brown); Java कोड String searchKeyWord = Smith; String sqlQuery = SELECT * FROM demo19