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

क्या 300,000 लाइन टेक्स्ट फ़ाइल डेटा को संसाधित करने और इसे MySQL में डालने का कोई बेहतर तरीका है?

आपके कोड से, ऐसा प्रतीत होता है कि आपका "अद्वितीय पहचानकर्ता" (इस प्रविष्टि के प्रयोजनों के लिए, कम से कम) समग्र (READING_DATE, READING_TIME, READING_ADDRESS) है। ।

यदि आप ऐसे UNIQUE . को परिभाषित करते हैं अपने डेटाबेस में कुंजी, फिर LOAD DATA IGNORE . के साथ कीवर्ड को ठीक वही करना चाहिए जिसकी आपको आवश्यकता है:

ALTER TABLE tbl_reading
  ADD UNIQUE KEY (READING_DATE, READING_TIME, READING_ADDRESS)
;

LOAD DATA INFILE '/path/to/csv'
    IGNORE
    INTO TABLE tbl_reading
    FIELDS
        TERMINATED BY ','
        OPTIONALLY ENCLOSED BY '"'
        ESCAPED BY ''
    LINES
        TERMINATED BY '\r\n'
    (@rec_0, @rec_1, @rec_2, @rec_3, @rec_4, @rec_5, @rec_6, @rec_7, @rec_8)
    SET
        READING_DATE = DATE_FORMAT(STR_TO_DATE(TRIM(@rec_0), '???'), '%Y/%m/%d'),
        READING_TIME = DATE_FORMAT(STR_TO_DATE(TRIM(@rec_1), '???'), '%H:%i:%s'),
        READING_ADDRESS    = TRIM(@rec_2),
        CO2_SET_VALUE      = TRIM(@rec_3),
        CO2_PROCESS_VALUE  = TRIM(@rec_4),
        TEMP_SET_VALUE     = TRIM(@rec_5),
        TEMP_PROCESS_VALUE = TRIM(@rec_6),
        RH_SET_VALUE       = TRIM(@rec_7),
        RH_PROCESS_VALUE   = TRIM(@rec_8)
;

(कहां '???' आपके सीएसवी में दिनांक और समय प्रारूपों का प्रतिनिधित्व करने वाले स्ट्रिंग से बदल दिए जाते हैं)।

ध्यान दें कि आपको वास्तव में READING_DATE स्टोर करना चाहिए और READING_TIME एक साथ एक DATETIME . में या TIMESTAMP कॉलम:

ALTER TABLE tbl_reading
  ADD COLUMN READING_DATETIME DATETIME AFTER READING_TIME,
  ADD UNIQUE KEY (READING_DATETIME, READING_ADDRESS)
;

UPDATE tbl_reading SET READING_DATETIME = STR_TO_DATE(
  CONCAT(READING_DATE, ' ', READING_TIME),
  '%Y/%m/%d %H:%i:%s'
);

ALTER TABLE tbl_reading
  DROP COLUMN READING_DATE,
  DROP COLUMN READING_TIME
;

किस मामले में, SET LOAD DATA का खंड इसके बजाय कमांड में शामिल होगा:

READING_DATETIME = STR_TO_DATE(CONCAT(TRIM(@rec_0), ' ', TRIM(@rec_1)), '???')


  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. PHP/MYSQLI:mysqli_query PHP में विफल रहता है

  3. MySQL के लिए मुझे किस विजुअल स्टूडियो की आवश्यकता है?

  4. लोड डेटा इनफाइल त्रुटि कोड:13

  5. मैं जावा स्विंग एप्लिकेशन में कैरेक्टर एन्कोडिंग कहां सेट करूं ताकि मैं एक MySQL डेटाबेस में हिंदी लिख सकूं?