本文實例講述了PHP實現在資料庫百萬條數據中隨機獲取20條記錄的方法。PHP實例分享給大家供大家參考,具體如下:為什麼要寫這個?在去某個公司面試時,讓寫個演算法出來,當時就蒙了,我開發過程中用到演算法的嗎?又不是大數據開發,分析。今天偶然想起來一個坑爹數據,如:PHP取百萬條數據中隨機20條記錄,當時就 ...
本文實例講述了PHP實現在資料庫百萬條數據中隨機獲取20條記錄的方法。PHP實例分享給大家供大家參考,具體如下:
為什麼要寫這個?
在去某個公司面試時,讓寫個演算法出來,當時就蒙了,我開發過程中用到演算法的嗎?又不是大數據開發,分析。
今天偶然想起來一個坑爹數據,如:PHP取百萬條數據中隨機20條記錄,當時就用的演算法。
1.先統計統計資料庫多少條記錄(這個做個數據緩存,如1小時重新統計一次),
2.根據總條數,隨機1次,1次性取出20條記錄(當然這個就相當於分頁了,要求不高的話,這個最快,我用的就是這個);
還有一種方法,隨機20次,重覆執行20次。
例如:
1 $sum=800000;//得到總條數 2 //迴圈取數據 3 for($i=1;$i<=20;$i++){ 4 $offset=mt_rand(1,$sum); 5 //控制重覆對比的,請自行實現 6 //資料庫取數據的,請自行實現 7 $sql="select * from table limit $offset,1"; 8 echo$sql; 9 }