公司有一个技术落后的网站项目,目录/uploads及其下面有多个以日期命名的子目录,保存了用户上传的图上约20万张,其中大部分是没用的,也就是用户不需要的。
有用的一小部分以url方式记录在数据库mysql某个表中,此表有5000多条记录,以字段contents记录包含图片url的数据,字段contents字段还是json_encode(array()), array里面有文字,也有图片的url。
`
$array_contents=array(
'title'=>'*******',
'msg'=>array(...),
'img_1'=>'http://domain.com/uploads/aaaa_2011101501.jpg',
'img_2'=>'http://domain.com/uploads/20111015/aaaa_20111015001.jpg',
'img_3'=>'http://domain.com/uploads/20111015/aaaa_20111015002.jpg',
'img_4'=>'http://domain.com/uploads/aaaa_2011101502.jpg',
...
);
`
现在老板要求把没用的图片删掉,只保留数据库中存储的一部分。
我目前没有好办法,只想到循环。 我只能想到的思路是把所有有用的图片url提出来作为一个array_valid,所有20万张图片作为array_all,但这样一来,循环的数量太大,隐约感觉会卡死。
麻烦大家提点下,不论是用php还是linux命令,如何更高效率地筛选20万张图片,从里面删掉不要的部分?
1 20万条数据不算什么大数据,20亿都没事
2 将数据库中的所有的图片地址取出来放在一个临时文件里
3 执行linux命令将临时文件里的图片复制到另一个临时目录里
4 rm upload里所有的文件
5 将临时目录命名为upload 完事
你没有必要写一堆代码 ,就几个命令的事情