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

你可能感兴趣的:(python操作数据库,批量增加数据)