感思-最好的优化就是减少数据量!
背景
本人从事工作为游戏公司。公司体量中等,每天注册人数峰值十几万。数据后台主要还是使用Mysql作为数据库。数据后台有个表且称“日表”,主要是记录每个广告位的效果。
原统计方式
该日表有几个字段,记录这公司投放以来所有广告为的累计成本、付费、付费人数等等。为了方便前段展示,这个表每天都统计所有广告位的累计数据(尽管很多广告位已经没有数据了)。这样一来每天(20年上)就会有近二十万条记录。光20年上半年总记录就有三千万!
新统计方式
把日表的这几个字段单独抽出来做一个表统计,目前在二十几万记录。然后重新统计日表后,新日表总条数在一千万多点。
查询对比
优化后查询一个月数据对比,同一个SQL在两个表都没有热数据的情况下表现。
图中所示的条数请忽略,那是一些业务逻辑造成的。
旧表:
新表:
总结
当查询慢了,除了优化索引、语句等等方式外。我们可以尝试“减少数据”:拆表、聚合等等,尝试水平、垂直拆表等等呀。总的来说:最好的优化就是减少数据量!