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条数据的方式插入数据并提交事务,直到所有数据插入完成。最后记得关闭数据库连接。希望这篇教程对你有帮助,祝你顺利学习!