Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana cara memasukkan data file CSV ke MYSQL menggunakan Python secara efisien?

Ada banyak cara untuk mengoptimalkan sisipan ini. Berikut beberapa idenya:

  1. Anda memiliki perulangan for di seluruh kumpulan data. Anda dapat melakukan commit() setiap 100 atau lebih
  2. Anda dapat menyisipkan banyak baris ke dalam satu sisipan
  3. Anda dapat menggabungkan keduanya dan membuat penyisipan multi-baris setiap 100 baris pada CSV Anda
  4. Jika python bukan persyaratan, Anda dapat melakukannya langsung menggunakan MySQL seperti yang dijelaskan di sini . (Jika Anda harus melakukannya menggunakan python, Anda masih dapat menyiapkan pernyataan itu dengan python dan menghindari pengulangan file secara manual).

Contoh:

untuk nomor 2 dalam daftar, kode akan memiliki struktur berikut:

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. Bagaimana cara mengunggah Excel atau CSV ke basis data MySQL menggunakan PHP?

  2. PHP/mySQL - cara mengambil baris bersarang ke dalam array multidimensi

  3. masalah menginstal mysql python, modul mysqldb tidak ditemukan di Django

  4. Kegagalan tautan komunikasi - paket terakhir yang berhasil diterima dari server adalah

  5. Perintah MySQL INSERT atau REPLACE