I have a 5GB CSV of IP addresses that I need to parse to a MySQL database.
Currently reading rows from the CSV and inserting into the MySQL. It works great however I would love to make it fast.
Could I parallel the reading and writing somehow? Or perhaps chuck the csv down and spawn from processes to read & write each split csv?
import csv from csv import reader from csv import writer import mysql.connector cnx = mysql.connector.connect(user='root', password='', host='127.0.0.1', database='ips') cursor = cnx.cursor() i = 1 with open('iplist.csv', 'r') as read_obj: csv_reader = reader(read_obj) for row in csv_reader: query = """INSERT INTO ips (ip_start,ip_end,continent) VALUES ('%s','%s','%s')""" % (row[0],row[1],row[2]) print (query) cursor.execute(query) cursor.execute('COMMIT') print(i) i = i + 1 cnx.close() Any help is appreciated.
multiprocessingmodule.