Я пытаюсь сохранить, по сути, данные журнала в mySQL - потенциально большие объемы данных в несжатой форме (25 ГБ + месяц).mySQL хранит данные в сжатом формате
Каждая строка состоит только из двух столбцов, столбца datetime в качестве первичного ключа и столбца data
, содержащего от 8k до 16k несжатых данных.
Я попытался использовать innoDB ROW_FORMAT=compressed
, но, похоже, это не влияет на размер базы данных. Используя мои данные образца, его 0.53GB без использования сжатого форматирования строк, но его все еще 0.53GB с использованием сжатого формата строки.
Я проверяю размер хранимых данных с помощью следующего запроса (его в тестовой базе данных, так что мои тестовые таблицы всегда будет «самый большой»):
SELECT CONCAT(table_schema, '.', table_name),
CONCAT(ROUND(table_rows/1000000, 2), 'M') rows,
CONCAT(ROUND(data_length/(1024 * 1024 * 1024), 2), 'G') DATA,
CONCAT(ROUND(index_length/(1024 * 1024 * 1024), 2), 'G') idx,
CONCAT(ROUND((data_length + index_length)/(1024 * 1024 * 1024), 2), 'G') total_size,
ROUND(index_length/data_length, 2) idxfrac
FROM information_schema.TABLES
ORDER BY data_length + index_length DESC
LIMIT 10;
Вы пробовали измерения потребления, глядя на диске, потребленный в файловой системе MYSQLD сервера? Имейте в виду, что дисковое пространство на сегодняшний день является самым дешевым активом на сервере. –