python多进程实现MySQL表1读取数据插到表2
若数据量较大用多进程
import pymysql
from sqlalchemy import create_engine
import pandas as pd
import os
import multiprocessing
#库1表1读取数据插到库2表2函数
def to_mysql(param1, param2):
mysql_engine1 = create_engine('mysql+pymysql://username1:password1@88.88.888.888:8888/dbname1?charset=utf8')
sql = """ select * from source_table_name where field1={} and field2={}""".format(param1, param2)
data_df = pd.read_sql_query(sql, mysql_engine1)
mysql_engine1.dispose()
mysql_engine2 = create_engine('mysql+pymysql://username2:password2@00.00.000.000:0000/dbname2?charset=utf8')
data_df.to_sql('target_table_name', mysql_engine2, if_exists='append', index=False)
mysql_engine2.dispose()
# 多进程调用
print('Parent process {} is Running'.format(os.getpid()))
p1 = multiprocessing.Process(target=to_mysql, args=('param1_value1', 'param2_value1'))
p2 = multiprocessing.Process(target=to_mysql, args=('param1_value2', 'param2_value2'))
p3 = multiprocessing.Process(target=to_mysql, args=('param1_value3', 'param2_value3'))
p4 = multiprocessing.Process(target=to_mysql, args=('param1_value4', 'param2_value4'))
print('p1 process start')
p1.start()
print('p2 process start')
p2.start()
print('p3 process start')
p3.start()
print('p4 process start')
p4.start()
p1.join()
p2.join()
p3.join()
p4.join()
本文介绍了一种使用Python多进程技术加速从一个MySQL数据库表读取数据并插入到另一个数据库表的方法。通过创建多个子进程并发执行数据迁移任务,显著提高了数据处理速度。文章详细展示了如何利用pymysql和pandas库读取和写入数据,以及如何使用multiprocessing模块进行多进程调度。
3204

被折叠的 条评论
为什么被折叠?



