PHP實現(xiàn)在數(shù)據(jù)庫百萬條數(shù)據(jù)中隨機獲取20條記錄的方法
本文實例講述了PHP實現(xiàn)在數(shù)據(jù)庫百萬條數(shù)據(jù)中隨機獲取20條記錄的方法。分享給大家供大家參考,具體如下:
額,為什么要寫這個?
在去某個公司面試時,讓寫個算法出來,當(dāng)時就蒙了,我開發(fā)過程中用到算法的嗎?又不是大數(shù)據(jù)開發(fā),分析。
今天偶然想起來一個數(shù)據(jù),如:PHP取百萬條數(shù)據(jù)中隨機20條記錄,當(dāng)時就用的算法。
1.先統(tǒng)計統(tǒng)計數(shù)據(jù)庫多少條記錄(這個做個數(shù)據(jù)緩存,如1小時重新統(tǒng)計一次),
2.根據(jù)總條數(shù),隨機1次,1次性取出20條記錄(當(dāng)然這個就相當(dāng)于分頁了,要求不高的話,這個最快,我用的就是這個);
還有一種方法,隨機20次,重復(fù)執(zhí)行20次。
例如:
$sum=800000;//得到總條數(shù) //循環(huán)取數(shù)據(jù) for($i=1;$i<=20;$i++){ $offset=mt_rand(1,$sum); //控制重復(fù)對比的,請自行實現(xiàn) //數(shù)據(jù)庫取數(shù)據(jù)的,請自行實現(xiàn) $sql="select * from table limit $offset,1"; echo $sql; }
當(dāng)然還有其他隨機方法,如://www.dbjr.com.cn/article/18299.htm
PS:這里再為大家提供一款功能類似的在線工具供大家參考:
在線隨機數(shù)字/字符串生成工具:
http://tools.jb51.net/aideddesign/suijishu
高強度密碼生成器:
http://tools.jb51.net/password/CreateStrongPassword
希望本文所述對大家PHP程序設(shè)計有所幫助。
相關(guān)文章
通過PHP CLI實現(xiàn)簡單的數(shù)據(jù)庫實時監(jiān)控調(diào)度
繼續(xù)CLI模式試驗,這次通過使用之前的“帶延時的死循環(huán)”方法,來實現(xiàn)個簡單的數(shù)據(jù)庫實時監(jiān)控調(diào)度功能。2009-07-07微信公眾平臺開發(fā)教程④ ThinkPHP框架下微信支付功能圖文詳解
這篇文章主要介紹了微信公眾平臺開發(fā)ThinkPHP框架下微信支付功能,結(jié)合圖文形式詳細(xì)分析了基于thinkPHP框架的微信支付功能實現(xiàn)步驟、操作技巧與相關(guān)注意事項,需要的朋友可以參考下2019-04-04