[英]How to export a mysql table to a file
我有一張有 97972561 行的大桌子。 我想將表格導出到一個文件中(txt 或 json 或 pickle 或任何東西),這對於我的以下操作更容易。 我該怎么做? 我嘗試查詢“select * from the_table”並將結果保存到文件中,但是需要很長時間並且失敗。 我也嘗試過“進入 outfile”,但我的“secure_file_priv”是 null,我無法更改它。
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 服務器 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 移動到您想要的機器上。 但是,鑒於這種方法避免了與數據庫之間的任何往返,與您當前的方法相比,移動文件的成本可能很小。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.