由于我们系统,有个需求。就是要记录客户每天的操作日志。这样日志表,每天大概增加15万条日志记录。所以我们就想到按时间去分表,因为每个月大概增加450万条日志。所以就决定用时间按月分表。
   比如 sys_log_201207 ,sys_log_201208,sys_log_201209,sys_log_201210 这样的表。
   表里面有sid ,uid,log_action,log_add_time几个字段
 
   现在有个需求。就是数据挖掘部门。希望灵活的通过日期选择,以及会员uid去检索每个会员,某段时间内。做了那些操作。这样很可能每次查询,要查询的记录,分布在不同的表内。   这样的人工分表后查询。如何进行高效的跨表查询呢。而且每个表,大概都有 450万条记录。。   

解决方案 »

  1.   

    开一张总表, MYISAM引擎, 将之前的所有日志全部导入进去.今后写个脚本, 每一天凌晨5点-6点的时候将昨天的日志导出并插入到总表中.
      

  2.   

    数据挖掘部门根据日期,在php中进行判断,起始日期跨越了哪些表,然后分别到各个表中查出对于的数据,在组合在一起。视情况而定吧,最后就是能不能隔一段时间将挖掘部门需要的数据查询出来后,根据业务需要进行处理,再将处理结果入库。这样以后查询只需要在平时积累下来的结果集表中进行查询