GPS轨迹数据是个无底洞,越来越大,目前单天已超过2000万,每天占空间5G左右
由于这些数据不用更新,并且我是按天分表的,过了当天就只需要解决很低频率的读请求,所以很适合压缩
主要关注压缩比
未压缩前数据量
- 物理大小 5.30 GB
- 表空间大小 5.22 GB
- 索引空间大小 1.12 GB
- 数据空间大小 4.10 GB
- 碎片率 0.04%
- 行 22548895
- 平均行长 195 B
默认压缩
ALTER table ROW_FORMAT=COMPRESSED;
- 用时 390s
压缩结果
- 物理大小 3.07 GB,压缩率 57%
- 表空间 3.01 GB
- 索引空间 603.48 MB
- 碎片率 0.08
- 行长 110B
key_block_siz
- 改为4测试
- 物理文件大小为 4.08G,skip
- 结论,改了反而占用空间越大了
innodb_compression_level
- 改为8测试(原来是6)
- 改为7, 测试0707表 4.98 --> 2.87,和6差不比 57%
- 改为5, 测试0705表 4.91 GB-> 2.79 56.8%
- 改回6,测试 0706表, 4.89-->2.82 57.6
- 改为2,测试0625表, 4.85--> 2.82
- 结论,P用没有,压缩比和cpu占用率没有变化
结论
- 数据和索引都会压缩
- ALTER table 时CPU占用率70%左右,影响不大(正常cpu占用是20以内)
- 测试基本没影响到查询性能