Rumah >pangkalan data >tutorial mysql >Cara menggunakan Python untuk membaca berpuluh-puluh juta data dan secara automatik menulisnya ke pangkalan data MySQL
Gunakan fungsi wizard import alat navicat. Perisian ini boleh menyokong pelbagai format fail, dan boleh membuat jadual secara automatik berdasarkan medan fail atau memasukkan data ke dalam jadual sedia ada, yang sangat pantas dan mudah.
Data Ujian: format csv, kira-kira 12 juta baris
import pandas as pd data = pd.read_csv('./tianchi_mobile_recommend_train_user.csv') data.shape
Cetak hasil:
Kaedah 1: python ➕ perpustakaan pymysql
Pasang arahan pymysql:
pip install pymysql
Pelaksanaan kod:
rreeeKaedah 2:pandas ➕ sqlalchemy: panda perlu memperkenalkan sqlalchemy untuk menyokong sql dengan sokongan sqlalchemy, ia boleh melaksanakan pertanyaan, kemas kini dan operasi lain bagi semua jenis pangkalan data biasa.
Pelaksanaan kod:import pymysql
# 数据库连接信息
conn = pymysql.connect(
host='127.0.0.1',
user='root',
passwd='wangyuqing',
db='test01',
port = 3306,
charset="utf8")
# 分块处理
big_size = 100000
# 分块遍历写入到 mysql
with pd.read_csv('./tianchi_mobile_recommend_train_user.csv',chunksize=big_size) as reader:
for df in reader:
datas = []
print('处理:',len(df))
# print(df)
for i ,j in df.iterrows():
data = (j['user_id'],j['item_id'],j['behavior_type'],
j['item_category'],j['time'])
datas.append(data)
_values = ",".join(['%s', ] * 5)
sql = """insert into users(user_id,item_id,behavior_type
,item_category,time) values(%s)""" % _values
cursor = conn.cursor()
cursor.executemany(sql,datas)
conn.commit()
# 关闭服务
conn.close()
cursor.close()
print('存入成功!')
Ringkasan
Atas ialah kandungan terperinci Cara menggunakan Python untuk membaca berpuluh-puluh juta data dan secara automatik menulisnya ke pangkalan data MySQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!