PHP實(shí)現(xiàn)在數(shù)據(jù)庫(kù)百萬(wàn)條數(shù)據(jù)中隨機(jī)獲取20條記錄的方法
本文實(shí)例講述了PHP實(shí)現(xiàn)在數(shù)據(jù)庫(kù)百萬(wàn)條數(shù)據(jù)中隨機(jī)獲取20條記錄的方法。分享給大家供大家參考,具體如下:
額,為什么要寫(xiě)這個(gè)?
在去某個(gè)公司面試時(shí),讓寫(xiě)個(gè)算法出來(lái),當(dāng)時(shí)就蒙了,我開(kāi)發(fā)過(guò)程中用到算法的嗎?又不是大數(shù)據(jù)開(kāi)發(fā),分析。
今天偶然想起來(lái)一個(gè)數(shù)據(jù),如:PHP取百萬(wàn)條數(shù)據(jù)中隨機(jī)20條記錄,當(dāng)時(shí)就用的算法。
1.先統(tǒng)計(jì)統(tǒng)計(jì)數(shù)據(jù)庫(kù)多少條記錄(這個(gè)做個(gè)數(shù)據(jù)緩存,如1小時(shí)重新統(tǒng)計(jì)一次),
2.根據(jù)總條數(shù),隨機(jī)1次,1次性取出20條記錄(當(dāng)然這個(gè)就相當(dāng)于分頁(yè)了,要求不高的話,這個(gè)最快,我用的就是這個(gè));
還有一種方法,隨機(jī)20次,重復(fù)執(zhí)行20次。
例如:
$sum=800000;//得到總條數(shù) //循環(huán)取數(shù)據(jù) for($i=1;$i<=20;$i++){ $offset=mt_rand(1,$sum); //控制重復(fù)對(duì)比的,請(qǐng)自行實(shí)現(xiàn) //數(shù)據(jù)庫(kù)取數(shù)據(jù)的,請(qǐng)自行實(shí)現(xiàn) $sql="select * from table limit $offset,1"; echo $sql; }
當(dāng)然還有其他隨機(jī)方法,如://chabaoo.cn/article/18299.htm
PS:這里再為大家提供一款功能類似的在線工具供大家參考:
在線隨機(jī)數(shù)字/字符串生成工具:
http://tools.jb51.net/aideddesign/suijishu
高強(qiáng)度密碼生成器:
http://tools.jb51.net/password/CreateStrongPassword
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
相關(guān)文章
PHP簡(jiǎn)單驗(yàn)證碼功能機(jī)制實(shí)例詳解
這篇文章主要介紹了PHP簡(jiǎn)單驗(yàn)證碼功能機(jī)制,結(jié)合實(shí)例形式深入淺出的分析了php驗(yàn)證碼的原理、實(shí)現(xiàn)步驟及相關(guān)操作技巧,需要的朋友可以參考下2019-03-03在PHP中輸出JS語(yǔ)句以及亂碼問(wèn)題的解決方案
今天小編就為大家分享一篇關(guān)于在PHP中輸出JS語(yǔ)句以及亂碼問(wèn)題的解決方案,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-02-02PHP通過(guò)header實(shí)現(xiàn)文本文件下載的代碼
所謂實(shí)現(xiàn)文本文件的下載就是說(shuō)當(dāng)我們點(diǎn)擊一個(gè)文本文件的鏈接的時(shí)候不是打開(kāi)這個(gè)文件,而是彈出一個(gè)下載對(duì)話框讓我們下載2010-08-08通過(guò)PHP CLI實(shí)現(xiàn)簡(jiǎn)單的數(shù)據(jù)庫(kù)實(shí)時(shí)監(jiān)控調(diào)度
繼續(xù)CLI模式試驗(yàn),這次通過(guò)使用之前的“帶延時(shí)的死循環(huán)”方法,來(lái)實(shí)現(xiàn)個(gè)簡(jiǎn)單的數(shù)據(jù)庫(kù)實(shí)時(shí)監(jiān)控調(diào)度功能。2009-07-07微信公眾平臺(tái)開(kāi)發(fā)教程④ ThinkPHP框架下微信支付功能圖文詳解
這篇文章主要介紹了微信公眾平臺(tái)開(kāi)發(fā)ThinkPHP框架下微信支付功能,結(jié)合圖文形式詳細(xì)分析了基于thinkPHP框架的微信支付功能實(shí)現(xiàn)步驟、操作技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下2019-04-04