python批量处理数据更新数据库的方法

当使用python工具往数据库添加内容时,如果一行一行往数据库添加内容,效率会很低下,如果添加的数据量很大,可能造成等待时间过长的问题,这里可以批量处理的方式进行数据添加,方式如下面代码所示:

insert语句后面参数用列表代替,列表里面包含的是多个元组,一个元组代表的是一行数据,多个元组就代表多行内容,使用此方式可大大减少添加数据的等待时间

"""
插入大量数据
"""
import random

import MySQLdb

from utils import random_string

conn = MySQLdb.connect(host='47.104.31.138', port=3306,
                       user='root', password='Luohao.618',
                       database='hrs', charset='utf8')
try:
    with conn.cursor() as cursor:
        for i in range(10):
        	# 定义列表参数
            params = []
            for j in range(1, 101):
                username = f'user{100 * i + j}'
                password = random_string(random.randint(8, 20))
                params.append((username, password))
            cursor.executemany(
                'insert into tb_user (username, password) values (%s, %s)',
                params # 此处从一个单元组编程了包含多个元组的列表
            )
    # 4. 提交事务
    conn.commit()
except MySQLdb.MySQLError as err:
    print(err)
    # 4. 回滚事务
    conn.rollback()
finally:
    # 5. 关闭数据库连接(释放资源)
    conn.close()
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值