python多线程访问数据库

import threading
import time
import pymysql
from sqlalchemy import create_engine
import pandas as pd
import get_aid_from_docid

dbConnectStr = "mysql+pymysql://user:passward@host:port/database?charset=utf8"


conn = create_engine(dbConnectStr)

client = pymysql.connect(
    host=host,
    port=int(3306),
    user=user,
    password=passward,
    db=database,
    charset='utf8mb4',
    cursorclass=pymysql.cursors.DictCursor
)
cursor03 = client.cursor()

lock = threading.Lock()


def getData(start_id,end_id):
	sql = f'''select * from adidas_weixin_aid_2_pice1
			where key_id between {start_id} and {end_id};'''
	print(sql)
	df = pd.read_sql(sql,conn)
	df.to_excel(f'muti_thread_practice_{threading.current_thread().name}.xlsx')
	print(threading.current_thread().name,'数据是',df)

if __name__ == '__main__':
	
	df = pd.read_excel('医生账号库第二批次-小红书AID获取.xlsx')
	# sql = f'''select docid from tmp_api021_data;'''
	# print(sql)
	# df = pd.read_sql(sql,conn)

	start = time.time()
	t1 = threading.Thread(name = 't1',target = get_aid_from_docid.getAid, args = (df.loc[0:5000],))
	t2 = threading.Thread(name = 't2',target = get_aid_from_docid.getAid, args = (df.loc[5001:10000,],))
	t3 = threading.Thread(name = 't3',target = get_aid_from_docid.getAid, args = (df.loc[10001:15000,],))
	

	t1.start()
	t2.start()
	t3.start()
	

	t1.join()
	t2.join()
	t3.join()
	

	end = time.time()
	print('共用时:',end - start ,'秒')

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值