读取文件夹下log文件
文件量比较多3000+,文件大小平均50K左右,每天还在增加,文件不能删除,
求一个合理的文件读取策略
测试了一下,一次性读取完需要将近一天时间,大概470W数据量
3000+文件,一个50K左右, 又不需要一天时间吧!
主要的问题还是读到数据进行处理的时间, 你可以用几个线程读,把相关有用的数据捉出来放在某一地方, 再用10+N个线程去处理。
我刚接手.大致看了一下
DELETE TBL_Data 32544行
SELECT TBL_CONFIG 1951行
for(;1951;){
for(;18;){
SELECT AVG() TBL_LOG 19977行
for(;32;){
SELECT TBL_NCELL 119862行 ,TBL_DATA 317行
}
INSERT TBL_Data
}
for(;18;){
SELECT TBL_LOG 19977行
}
}
测试了一下
73个文件
运行了 三个多小时,也是够了..
我都不知道怎么下手....
对线程这块不太熟悉,可以用存储过程么?
小文件的读取没什么能优化的。
问题是你要做什么业务?查询?统计?读取完,丢mongodb。建立索引去查询好了。