作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个包含 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/
我是一名优秀的程序员,十分优秀!