使用mysqldump,我可以將我的數據庫和錶轉儲到單獨的文件。Mysqldump拆分錶轉儲到更小的文件
我的問題是,有沒有辦法在mysqldump中將這些表文件拆分成更小的部分?
因此,而不是一個10GB的.sql文件,我會得到同一個表的10個1GB .sql文件?
使用mysqldump,我可以將我的數據庫和錶轉儲到單獨的文件。Mysqldump拆分錶轉儲到更小的文件
我的問題是,有沒有辦法在mysqldump中將這些表文件拆分成更小的部分?
因此,而不是一個10GB的.sql文件,我會得到同一個表的10個1GB .sql文件?
您可以使用MySQL Dump從查詢中獲取數據,但是當您需要將數據拆分爲特定大小的塊時,我總是發現難以管理。
正如你想要的1Gb文件,這裏是我如何將表分成1Gb段。
我用INTO OUTFILE
但MySQL的轉儲也可以在這個階段
SELECT * FROM table
ORDER BY adminid ASC
INTO OUTFILE 'c:/table.csv'
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY
如果你正在使用Windows使用這真的沒啥好分割工具,所以我會建議GNU核心工具包http://gnuwin32.sourceforge.net/packages/coreutils.htm
安裝就可以使用split
從命令提示符
cd C:\Program Files (x86)\GnuWin32\bin
split -C 1024m -d c:\table.csv c:\table.part_
如果你之後使用Linux你已經可以訪問一個好的分割util。
如果您導出它們,您可能會希望在某些時候再次導入它們 - 這是行末處的.part_的重要位置,因爲mysqlimport試圖找出要導入的表名,。可以用來拆分表,但允許多個文件導入到同一個數據庫表中。
這些然後可以使用需要
mysqlimport --local --compress --user=username --password=password --host=dbserver.host --fields-terminated-by=, --fields-optionally-enclosed-by="\"" --lines-terminated-by="\n" databasename c:\table.csv
--local
否則mysqlimport的希望找到遠程主機
--compress
是非常重要的文件,這樣可以節省大量的帶寬
真正的答案是否定的,你不能。當然,我可以使用「拆分」,但這不是mysql轉儲的一部分。接受的答案,因爲這是最好的選擇 – 2013-03-29 18:53:55
你進口可以將@jason完全轉儲到表和數據庫中。 您可以使用mysql-dump-splitter來提取您選擇的表/數據庫。在轉儲過程 您也可以按如下方式使用過濾器:
Dump all data for 2015:
mysqldump --all-databases --where= "DATEFIELD >= '2014-01-01' and DATEFIELD < '2015-01-01' " | gzip > ALLDUMP.2015.sql.gz
只要你應有的DateField列中的所有表! 或者,您也可以指定ID列來限制轉儲,以僅提取指定範圍的ID。
重複與http://stackoverflow.com/questions/132902/how-do-i-split-the-output-from-mysqldump-into-smaller-files – miah 2013-03-27 14:57:32