python多进程实现MySQL表1读取数据插到表2

本文介绍了一种使用Python多进程技术加速从一个MySQL数据库表读取数据并插入到另一个数据库表的方法。通过创建多个子进程并发执行数据迁移任务,显著提高了数据处理速度。文章详细展示了如何利用pymysql和pandas库读取和写入数据,以及如何使用multiprocessing模块进行多进程调度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值