php - a、b、c、d四個txt,比較bcd這三個txt有多少是在a中,這4個檔案大約250M.
怪我咯
怪我咯 2017-05-16 13:07:52
0
3
458
  1. 規則如下:

自己測試過,設定了這兩個ini_set('memory_limit', '-1');set_time_limit(0);,然後運行等了很久直接報500錯誤,求大神幫助!!!

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回覆(3)
仅有的幸福

數據很多。估計資料庫的話容易死。單純比對的話 先寫哥腳本把資料存到redis裡。 a表的快取key 是a.0 a.1 a.2 什麼的,b.000000036什麼的 後兩個規則保持一直。導入之後 決定 a的資料總條數

寫一個for迴圈

$redis= new Redis();
$Acount = 100000; //a的总数
$num  = 1;
$chkary = [1,2,3,4,5,6,7,8,9];//判断用的数组
for ($i=0;$i<=$Acount;$i++){
    $data = $redis->get('a.' . $i);
   if( $redis->exists('b.'.$data)){
       //存在 code
   }
   $num++;
   if(in_array(($Acount/$num),$chkary)){
       sleep(1); //防止卡死
   }
}
漂亮男人

可以寫個腳本把四個文字的內容都快取到Redis的4個集合裡面,然後求交集,這樣速度挺快的,不知道允不允許這樣做?

给我你的怀抱

500錯誤是記憶體不夠了吧,可以執行若干行就釋放一下無用記憶體

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板