Compression

March 8, 2016 ยท View on GitHub

Readme | Installation | Requirements | Configuration | Security | Compression | Encryption | Examples | Contributing


Compression

Perfomance

When you choose a compression algorithm also keep in mind they have different performances. The following shows a direct comparison between gzip -9, bzip2 -9 and the multithreaded version pbzip2 -9 for smaller and medium sized databases.

It was tested on a MacBookPro (2014), Intel Core i7 2.5Ghz (8 cores) with 16GB RAM.

Time

The total time taken from mysqldump-secure to dump, compress and write the data to disk. The size in brackets refers to the database size in MySQL. The following represents a mean time calculated from 10 rounds.

direct[1]gzip -9bzip2 -9pbzip2 -9lzop -9lzma -9[2]xz -9xz -9 -e
db_14 (6.74 MB)1 sec1 sec0 sec0 sec1 sec0 sec1 sec1 sec
db_13 (6.93 MB)0 sec0 sec0 sec1 sec1 sec1 sec1 sec1 sec
db_06 (10.71 MB)0 sec1 sec1 sec0 sec1 sec2 sec2 sec6 sec
db_16 (12.49 MB)1 sec0 sec1 sec0 sec1 sec2 sec2 sec18 sec
db_05 (14.39 MB)1 sec1 sec2 sec1 sec1 sec2 sec2 sec11 sec
db_03 (14.39 MB)0 sec1 sec1 sec1 sec1 sec2 sec2 sec10 sec
db_10 (17.24 MB)1 sec0 sec2 sec0 sec2 sec3 sec3 sec23 sec
db_12 (20.18 MB)1 sec1 sec2 sec1 sec2 sec3 sec3 sec20 sec
db_04 (39.28 MB)2 sec2 sec4 sec1 sec5 sec11 sec11 sec54 sec
db_08 (44.46 MB)1 sec2 sec3 sec1 sec5 sec8 sec8 sec21 sec
db_07 (44.48 MB)2 sec2 sec3 sec2 sec5 sec9 sec8 sec22 sec
db_15 (95.97 MB)3 sec4 sec6 sec3 sec8 sec15 sec15 sec36 sec
db_17 (158.29 MB)6 sec4 sec16 sec4 sec9 sec27 sec26 sec47 sec
db_02 (166.68 MB)7 sec4 sec26 sec10 sec11 sec23 sec22 sec503 sed
db_09 (266.39 MB)11 sec15 sec29 sec10 sec23 sec77 sec79 sec427 sec
db_01 (433.66 MB)15 sec19 sec45 sec14 sec44 sec148 sec145 sec753 sec
db_11 (499.33 MB)26 sec30 sec65 sec22 sec69 sec181 sec171 sec930 sec
db_18 (1.919 GB)634 sec422 sec2464 sec773 sec1078 sec556 sec2934 sec15242 sec
  • [1] Direct (without compression) is usually much slower than this, because most server HDD's are ofteb the bottleneck (my machine has a very fast PCIe SSD).
  • [2] On modern systems lzma is usually an alias to xz --format=lzma

Looks like pbzip2 is generally faster than gzip (and a lot faster than bzip2), except for bigger files (see db_18).

Final filesize

This is the resulting file size from ls -lh.

directgzip -9bzip2 -9pbzip2 -9lzop -9lzma -9xz -9xz -9 -e
db_14 (6.74 MB)1.3M129K102K102K167K92K92K82K
db_13 (6.93 MB)1.5M143K112K112K183K102K102K92K
db_06 (10.71 MB)5.1M464K339K339K618K328K328K278K
db_16 (12.49 MB)9.8M597K385K386K855K493K493K413K
db_05 (14.39 MB)8.4M757K556K557K1007K509K509K446K
db_03 (14.39 MB)8.4M757K556K557K1007K508K508K446K
db_10 (17.24 MB)12M756K505K506K1.1M530K538K339K
db_12 (20.18 MB)13M1.1M802K803K1.5M780K781K646K
db_04 (39.28 MB)30M3.1M2.3M2.3M4.1M2.3M2.3M1.9M
db_08 (44.46 MB)21M3.5M2.8M2.8M4.5M2.4M2.4M2.3M
db_07 (44.48 MB)21M3.5M2.8M2.8M4.5M2.4M2.4M2.3M
db_15 (95.97 MB)38M6.6M5.2M5.2M8.4M3.5M3.5M3.4M
db_17 (158.29 MB)120M12M8.9M8.9M15M6.7M6.7M6.4M
db_02 (166.68 MB)153M5.5M3.8M3.8M8.6M3.1M3.1M2.4M
db_09 (266.39 MB)214M19M14M14M25M13M13M10M
db_01 (433.66 MB)394M35M26M26M46M25M25M20M
db_11 (499.33 MB)454M49M36M36M66M35M35M29M
db_18 (1.919 GB)15G638M464M465M810M295M295M266M

The difference in file size is quiet noticable.

System Load

gzip -9

gzip -9

bzip2 -9

bzip2 -9

pbzip2 -9

pbzip2 -9

lzma -9

pbzip2 -9