gpt4 book ai didi

mysql - 如何将mysql表导出到文件

转载 作者:行者123 更新时间:2023-11-29 07:16:46 25 4
gpt4 key购买 nike

我有一个包含 97972561 行的大表。我想将表格导出到一个文件(txt 或 json 或 pickle 或任何东西)中,这对于我的后续操作来说更容易。我该怎么做?我试图查询“select * from the_table”并将结果保存到文件中,但耗时很长,失败了。我也试过“into outfile”,但是我的“secure_file_priv”是空的,我不能改变它。

mydb = mysql.connector.connect(
host="localhost",
user="username",
passwd="xxxxxx",
db="mydb")
cur = mydb.cursor()

query = "SELECT * FROM PREDICATION"
cur.execute(query)

all_recordings = cur.fetchall()
mydb.close()

# save all recordings to a pickle file
with open('recordings.pkl', 'wb') as f:
pickle.dump(all_recordings, f)

我目前在终端 (Mac) 和工作台 6.3 中使用 mysql server 8.0.18。任何帮助将不胜感激!

最佳答案

这里的一个选择是使用 MySQL 的 SELECT ... INTO OUTFILE 功能(但请参阅下面的注释):

query = """SELECT * FROM PREDICATION
INTO OUTFILE 'recordings.pkl'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'"""

cur.execute(query)

这可能是将 MySQL 表转储为 CSV 的最快方法,并且应该比您建议的方法快得多,后者需要在写出之前将所有数据读入 Python。

请注意,这会在运行 MySQL 的同一台机器上生成一个名为 recordings.pkl 的 CSV 文件,不会在运行本地 Python 脚本的机器上。因此,您可能需要在此处执行额外的步骤才能将 CSV 移动到您想要的机器。但是,鉴于此方法避免了与数据库之间的任何往返,与您当前的方法相比,移动文件的成本可能很小。

关于mysql - 如何将mysql表导出到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58830845/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com