php 隨機(jī)記錄mysql rand()造成CPU 100%的解決辦法
更新時(shí)間:2010年05月18日 01:34:30 作者:
mysql數(shù)據(jù)庫有10幾萬條數(shù)據(jù),使用rand()提取隨機(jī)10條記錄,導(dǎo)致服務(wù)器cpu占用居高不下直至死機(jī)~
百度查閱了一些資料,再結(jié)合自己的一些經(jīng)驗(yàn),采用以下解決辦法:
$idlist='';
for($i=1;$i<=20;$i++){
if($i==1){
$idlist=mt_rand(3,25216);
}
else{
$idlist=$idlist.','.mt_rand(3,25216);
}
}
$query="select * from table where id in ($idlist) LIMIT 0,10";
原理其實(shí)很簡單,就是產(chǎn)生一組隨機(jī)ID,然后檢索這一組ID對應(yīng)的記錄,經(jīng)過這樣優(yōu)化,頁面打開速度明顯快了很多,CPU占用率也小到幾乎為0,呵呵~順便用這個(gè)思路把sqlserver站點(diǎn)也優(yōu)化了一下!
速度比較:
用rand()取10條隨機(jī)記錄要400多毫秒,而用上面的方法只要0.6毫秒左右,差別太大了!??!
復(fù)制代碼 代碼如下:
$idlist='';
for($i=1;$i<=20;$i++){
if($i==1){
$idlist=mt_rand(3,25216);
}
else{
$idlist=$idlist.','.mt_rand(3,25216);
}
}
$query="select * from table where id in ($idlist) LIMIT 0,10";
原理其實(shí)很簡單,就是產(chǎn)生一組隨機(jī)ID,然后檢索這一組ID對應(yīng)的記錄,經(jīng)過這樣優(yōu)化,頁面打開速度明顯快了很多,CPU占用率也小到幾乎為0,呵呵~順便用這個(gè)思路把sqlserver站點(diǎn)也優(yōu)化了一下!
速度比較:
用rand()取10條隨機(jī)記錄要400多毫秒,而用上面的方法只要0.6毫秒左右,差別太大了!??!
您可能感興趣的文章:
- MySQL的指定范圍隨機(jī)數(shù)函數(shù)rand()的使用技巧
- mysql 某字段插入隨機(jī)數(shù)(插入隨機(jī)數(shù)到MySQL數(shù)據(jù)庫)
- MySQL查詢隨機(jī)數(shù)據(jù)的4種方法和性能對比
- mysql獲取隨機(jī)數(shù)據(jù)的方法
- mysql優(yōu)化取隨機(jī)數(shù)據(jù)慢的方法
- MySQL取出隨機(jī)數(shù)據(jù)
- 從MySQL數(shù)據(jù)庫表中取出隨機(jī)數(shù)據(jù)的代碼
- MySQL中的RAND()函數(shù)使用詳解
- MySQL下的RAND()優(yōu)化案例分析
- MySQL優(yōu)化之對RAND()的優(yōu)化方法
- MySQL Order By Rand()效率分析
- mysql中RAND()隨便查詢記錄效率問題和解決辦法分享
- MYSQL隨機(jī)抽取查詢 MySQL Order By Rand()效率問題
- MySQL rand函數(shù)實(shí)現(xiàn)隨機(jī)數(shù)的方法
- PHP mt_rand() 函數(shù)
相關(guān)文章
php空間不支持socket但支持curl時(shí)recaptcha的用法
php空間不支持socket但支持curl時(shí)recaptcha的用法,需要的朋友可以參考下。2011-11-11PHP基于curl實(shí)現(xiàn)模擬微信瀏覽器打開微信鏈接的方法示例
這篇文章主要介紹了PHP基于curl實(shí)現(xiàn)模擬微信瀏覽器打開微信鏈接的方法,結(jié)合實(shí)例形式分析了php使用curl通過設(shè)置HTTP_USER_AGENT實(shí)現(xiàn)模擬微信瀏覽器相關(guān)操作技巧,需要的朋友可以參考下2019-02-02php下統(tǒng)計(jì)用戶在線時(shí)間的一種嘗試
一直以來,在web開發(fā)中,準(zhǔn)確統(tǒng)計(jì)用戶在線時(shí)間都是一個(gè)老大難的問題,雖然已經(jīng)有很多人去嘗試各種不同的方案,可是畢竟項(xiàng)目不同,所用到的方法也是千差萬別2010-08-08PHP基于文件鎖解決多進(jìn)程同時(shí)讀寫一個(gè)文件問題示例
這篇文章主要介紹了PHP基于文件鎖解決多進(jìn)程同時(shí)讀寫一個(gè)文件的方法,結(jié)合實(shí)例形式分析了PHP使用flock進(jìn)行文件讀寫加鎖操作用法,需要的朋友可以參考下2017-09-09PHP中使用addslashes函數(shù)轉(zhuǎn)義的安全性原理分析
這篇文章主要介紹了PHP中使用addslashes函數(shù)轉(zhuǎn)義的安全性原理分析,較為深入的分析了addslashes函數(shù)的用法及ecshop自定義函數(shù)addslashes_deep的不足之處,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2014-11-11PHP中通過ADO調(diào)用Access數(shù)據(jù)庫的方法測試不通過
PHP中通過ADO調(diào)用Access數(shù)據(jù)庫的方法測試不通過...2006-12-12