我想批量插入数据而不是一次一条,应该怎么修改代码?
时间: 2024-09-15 15:08:18 浏览: 34
MyBatis批量插入数据到Oracle数据库中的两种方式(实例代码)
如果你想要批量插入数据,可以使用 `pymysql` 的 `executemany()` 方法,这会提高插入性能。这里是如何修改代码的部分示例:
```python
import json
import pymysql
# ...其他部分保持不变...
# 函数用于插入到指定表(批量模式)
def batch_insert_data_to_table(table_name, records):
field_names = ', '.join(['`{}`'.format(field) for field in record.keys()])
placeholders = ', '.join('%s' * len(record))
sql = f"INSERT INTO {table_name} ({field_names}) VALUES ({placeholders})"
cursor.executemany(sql, records) # 批量插入所有记录
# 定义批量插入的条数(可以根据实际情况调整)
batch_size = 50
# 遍历数据并分批插入
for table in ['table1', 'table2']:
batches = [data[i:i + batch_size] for i in range(0, len(data), batch_size)]
for batch in batches:
batch_insert_data_to_table(table, batch)
# ...其他部分保持关闭连接等...
```
在这个版本中,我们将数据分为多个批次,然后对每一批次执行一次批量插入操作。这样可以减少数据库的交互次数,提高性能。
阅读全文