最近启动了一个新项目,类似于百度统计、友盟一类的数据分析产品。
产品中大量使用count,groupby一类的聚合查询(按日期组织PV,UV,销售额一类的),现在page_visit表数据量过百万后服务器已经稍显吃力,搭档的建议是增加缓存表,就是每天把用户的数据都算一遍,用户查询时直接从缓存表中取数据。但是缓存表带来的额外工作量会比较大,维护成本也高。
所以想请教下百度统计、友盟一类的数据库是如何设计的?
部分表结构 page_visit表: id,storeID,productID,title,ip,country,city,url,referUrl,browser,createTime,os... 每一次访问都会插入一条新的记录。
store表: id,userID,name,email...
product表: id,storeID,title,price,size,color...
缓存表,读和写在不同的表上。转存的脚本不难写应该~