总数据有530万条,数据量很大,我怎样使用cursor.fetchmany 获取所有数据,并导出为xlsx文件
时间: 2023-12-19 11:04:49 浏览: 111
你可以使用以下代码来获取所有数据并将其导出为xlsx文件:
```python
import pymysql
import xlsxwriter
# 连接数据库
conn = pymysql.connect(host='localhost', user='root', password='password', db='database')
cursor = conn.cursor()
# 查询数据
sql = "SELECT * FROM table"
cursor.execute(sql)
# 创建工作簿和工作表
workbook = xlsxwriter.Workbook('output.xlsx')
worksheet = workbook.add_worksheet()
# 写入表头
header = [i[0] for i in cursor.description]
for col_num, col_name in enumerate(header):
worksheet.write(0, col_num, col_name)
# 写入数据
row_num = 1
while True:
rows = cursor.fetchmany(1000) # 每次获取1000行数据
if not rows:
break
for row in rows:
for col_num, col_value in enumerate(row):
worksheet.write(row_num, col_num, col_value)
row_num += 1
# 关闭游标和连接
cursor.close()
conn.close()
# 保存工作簿
workbook.close()
```
这段代码将查询所有数据并将其分批写入xlsx文件。每次获取1000行数据,以减少内存占用。你可以根据实际情况调整此值。
阅读全文