基本的にログデータをmySQLに保存しようとしています-非圧縮形式のデータが大量になる可能性があります(25GB以上の月)。
各行は、主キーとしての datetime 列と、data
8k ~ 16k の非圧縮データを含む列の 2 つの列のみで構成されます。
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;