最近,需要对用户访问日志作一些统计分析处理,该日志每天生成,大小平均是1.5G,经其它程序进行预处理后,去掉一些无关信息,减小为300M左右,格式是userId`url`clicks,1000万行左右.
要做的工作是按userId,urlId分组保存到数据库,类似这样:
uid
------------------------
12
12
13
13
13
当然,还有其它关联的表,如url表,需要先通过url在url表查找出urlId,如果没有则插入...满足各种需求后,每条记录操作数据库的平均次数是查询4-6次(包括oracle的获得自增id查询),插入/更新3次
假设数据库的操作已经完全优化,要完成这项目任务,使用php的常规办法是打开日志文件句柄,然后遍历处理,这样,1000万条记录一下来,不少于6个小时(硬件配置为8G内存+Xeon1.60GHz
4核 x 2 ,下同)
这样的