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

पायथन का कुशलतापूर्वक उपयोग करके MYSQL में CSV फ़ाइल डेटा कैसे सम्मिलित करें?

इस इंसर्ट को ऑप्टिमाइज़ करने के कई तरीके हैं। यहां कुछ उपाय दिए गए हैं:

  1. आपके पास संपूर्ण डेटासेट पर लूप के लिए है। आप एक commit() कर सकते हैं हर 100 या तो
  2. आप एक इंसर्ट में कई पंक्तियां डाल सकते हैं
  3. आप दोनों को जोड़ सकते हैं और अपने CSV पर प्रत्येक 100 पंक्तियों में एक बहु-पंक्ति सम्मिलित कर सकते हैं
  4. यदि आपके लिए अजगर की आवश्यकता नहीं है, तो आप इसे सीधे MySQL का उपयोग करके कर सकते हैं जैसा कि बताया गया है यहां ए> . (यदि आप इसे अजगर का उपयोग करके करते हैं, तो आप अभी भी उस कथन को अजगर में तैयार कर सकते हैं और फ़ाइल के माध्यम से मैन्युअल रूप से लूपिंग से बच सकते हैं)।

उदाहरण:

सूची में नंबर 2 के लिए, कोड में निम्नलिखित संरचना होगी:

def csv_to_DB(xing_csv_input, db_opts):
    print("Inserting csv file {} to database {}".format(xing_csv_input, db_opts['host']))
    conn = pymysql.connect(**db_opts)
    cur = conn.cursor()
    try:
        with open(xing_csv_input, newline='') as csvfile:
            csv_data = csv.reader(csvfile, delimiter=',', quotechar='"')
            to_insert = []
            insert_str = "INSERT INTO table_x (ID, desc, desc_version, val, class) VALUES "
            template = '(%s, %s, %s, %s, %s)'
            count = 0
            for row in csv_data:
                count += 1
                to_insert.append(tuple(row))
                if count % 100 == 0:
                    query = insert_str + '\n'.join([template % r for r in to_insert])
                    cur.execute(query)
                    to_insert = []
                    conn.commit()
            query = insert_str + '\n'.join(template % to_insert)
            cur.execute(query)
            conn.commit()
    finally:
        conn.close()


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. कैसे mysql में परिकलित फ़ील्ड बनाने के लिए?

  2. MySQL सीएसवी स्ट्रिंग में फ़ील्ड का चयन करें

  3. java.sql.SQLException:परिणाम सेट की शुरुआत से पहले

  4. MySQL 8.0.11 त्रुटि caching_sha2_password से कनेक्ट होती है, निर्दिष्ट मॉड्यूल नहीं मिल सका

  5. क्या INT और VARCHAR प्राथमिक कुंजी के बीच कोई वास्तविक प्रदर्शन अंतर है?