我正在尝试将本质上是日志数据的内容存储在 mySQL 中——可能是大量未压缩形式的数据(25GB+ 月)。
每行仅包含两列,一个作为主键的日期时间列,以及一个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;