How can I determine or estimate the size of the SQL dump file prior to using something like mysqldump?
Asked
Active
Viewed 2.3k times
2 Answers
39
Please run this query:
SELECT
Data_BB / POWER(1024,1) Data_KB,
Data_BB / POWER(1024,2) Data_MB,
Data_BB / POWER(1024,3) Data_GB
FROM (SELECT SUM(data_length) Data_BB FROM information_schema.tables
WHERE table_schema NOT IN ('information_schema','performance_schema','mysql')) A;
This will give you a ballpark figure. The column index_length is not used because mysqldump does not dump indexes, only data. Just to be safe, you should always gzip it immediately:
mysqldump --all-databases --routines --triggers | gzip > MySQLData.sql.gz
Give it a Try !!!
RolandoMySQLDBA
- 185,223
- 33
- 326
- 536
1
Based on the other answer, if you want a one liner to determine the size in bytes to use in a shell script, you can use this:
mysqlSizeBytes="$(mysql --database=information_schema --skip-column-names --silent --execute "SELECT Data_BB FROM (SELECT SUM(data_length) Data_BB FROM information_schema.tables WHERE table_schema NOT IN ('information_schema','performance_schema','mysql')) A;")"
Dario Seidl
- 318
- 3
- 8