MySQL分批Insert提交教程

1. 整体流程

journey
    title MySQL分批Insert提交流程

    section 准备工作
        开始 -> 连接数据库 -> 创建表格 -> 准备数据 -> 结束

    section 分批Insert提交
        开始 -> 插入第一批数据 -> 提交事务 -> 插入第二批数据 -> 提交事务 -> ... -> 结束

2. 每一步操作及代码示例

步骤表格

步骤 操作 代码示例
1 连接数据库 conn = pymysql.connect(host='localhost', user='root', password='password', database='test')
2 创建表格 cur = conn.cursor() <br> cur.execute('CREATE TABLE IF NOT EXISTS users(id INT PRIMARY KEY, name VARCHAR(50))')
3 准备数据 data = [(1, 'Alice'), (2, 'Bob'), (3, 'Charlie'), ...]
4 插入第一批数据 cur.executemany('INSERT INTO users(id, name) VALUES(%s, %s)', data[:1000])
5 提交事务 conn.commit()
6 插入第二批数据 cur.executemany('INSERT INTO users(id, name) VALUES(%s, %s)', data[1000:2000])
7 提交事务 conn.commit()
... ... ...
n 插入最后一批数据 cur.executemany('INSERT INTO users(id, name) VALUES(%s, %s)', data[n*1000:])
n+1 提交事务 conn.commit()

代码示例

import pymysql

# 连接数据库
conn = pymysql.connect(host='localhost', user='root', password='password', database='test')

# 创建表格
cur = conn.cursor()
cur.execute('CREATE TABLE IF NOT EXISTS users(id INT PRIMARY KEY, name VARCHAR(50)')

# 准备数据
data = [(1, 'Alice'), (2, 'Bob'), (3, 'Charlie'), ...]

# 插入数据并提交事务
for i in range(len(data) // 1000 + 1):
    cur.executemany('INSERT INTO users(id, name) VALUES(%s, %s)', data[i*1000:(i+1)*1000])
    conn.commit()

# 关闭连接
cur.close()
conn.close()

总结

通过以上步骤,你可以实现MySQL分批Insert提交的操作。首先连接数据库并创建表格,然后准备好数据,接着按照每批1000条数据的方式插入数据并提交事务,直到所有数据插入完成。最后记得关闭数据库连接。希望这篇教程对你有帮助,祝你顺利学习!