Mysql
有什麼方法可以估計 SQL 轉儲文件所需的空間?
我想將 Wikipedia XML 轉儲文件導入 MySQL。未壓縮的 XML 轉儲文件為 65GB。這是否意味著我應該在 MySQL 數據路徑中釋放近 64GB 空間?有沒有辦法估計所需的空間?
這是 sql 架構:https ://git.wikimedia.org/blob/mediawiki%2Fcore.git/HEAD/maintenance%2Ftables.sql
我已經在兩個方向上處理過這樣的問題
Mar 20, 2013
:如何在轉儲前確定轉儲文件的大小?May 21, 2012
: MySQL 數據庫相對於轉儲文件有多大?您的問題有點不同,因為您沒有提供有關目標 MySQL 實例的任何資訊(將使用什麼儲存引擎,哪些列是 TEXT/BLOB,您的數據需要什麼索引等)
恕我直言,我能想到的最直接的方法如下
方法#1
編寫一些 Perl/Python 腳本來計算所有 XML 標記分隔符的長度。從文件的長度中減去你得到的總和。這基本上是 CSV 文件的大小,沒有分隔符。這將是原始數據的字節。
方法#2
執行 METHOD #1 併計算所有 XML 標記分隔符的計數,並將該計數添加到 METHOD #1 的結果中。這就像將逗號添加回 CSV 文件。如果您將輸出列印到這樣的文件,這會使大小更接近實際的 CSV。