Seit MySQL 5.5 besteht in der InnoDB Datenbank die Möglichkeit eine Tabelle zu komprimieren.

Zu erst müssen wir einige Einstellung ändern, damit wir die Komression nutzen können.

sudo vim /etc/mysql/conf.d/mm_mysql.cnf

[mysqld]
innodb_file_per_table = 1
innodb_file_format = Barracuda
open-files-limit = 2048
table_cache = 512

Nach einem Neustart von MySQL sind die Einstellungen aktiv.

sudo service mysql restart

Jetzt kann man pro Tabelle die Kompression einstellen. Das bringt bei Tabellen mit Blob Felder eine Ersparnis von 50% Speicherplatz.

ALTER TABLE 'tabellen_name' ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4;

Mit dem Befehl kann man prüfen, welche Einstellung pro Tabelle vorgenommen wurde.

SELECT TABLE_NAME, ENGINE, VERSION, ROW_FORMAT, TABLE_ROWS, DATA_LENGTH, CREATE_OPTIONS
FROM information_schema.tables
WHERE TABLE_SCHEMA='schema_name';

Das Ergebnis der Dateiänderung kann man hiermit prüfen.

mysql> \! ls -l /var/lib/mysql/schema_name/*.ibd