junsansi兄弟,谢谢你的精辟见解,管理层提出的要求是满足:日1000WPV,亿级数据访问
看了你的策略,我就是还有几点不太明白,望赐教
1、大量的中间表
我是不是可以这么理解,比如我有基础数据表:访问、页面、访客,里面都是每天实时插入的最原始的数据,然后我每天对这里面的数据按天进行一个基本的统计,形成一个统计数据放在特定的统计表
里,比如 tbl_sitevisit,这个表里把每天关于网站访客的一个基础数据的统计存放着,比如今天12月25日就有一条记录生成到表里,这个表就是中间表。
如果有查询请求,比如一个系统用户查询一个星期内的访问的相关统计数据,我就直接从中间表里取数据来进行查询,最后获得结果集。
是这样的吗?
2、中间表的数量会很多吧?
由于前面1中说的中间表是对每天的数据统计进行存放,那按你说的按月也要统计一次,将数据存放冗余着,那岂不是我要针对月也要建另外的中间表以存放每个月的整体统计数据
3、基础数据表是不是应该只允许插入?
最原始的数据表每天就不停地存放插入的数据,因为要频繁的IO操作,但是我中间表是基于原始数据表来进行的,索引是不是要建的适当,数据量大了后频繁操作,索引是不是会有影响,毕竟索引开销是
大的。用好了是天使,用的不好那就是魔鬼
4、如果遇上时段的查询,如何解决更好呢?
你说的按天、按月进行尽可能多的统计冗余,我觉得也是这样,每天定时一个JOB或任务触发&