php 隨機記錄mysql rand()造成CPU 100%的解決辦法
更新時間:2010年05月18日 01:34:30 作者:
mysql數(shù)據(jù)庫有10幾萬條數(shù)據(jù),使用rand()提取隨機10條記錄,導致服務器cpu占用居高不下直至死機~
百度查閱了一些資料,再結合自己的一些經(jīng)驗,采用以下解決辦法:
$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";
原理其實很簡單,就是產(chǎn)生一組隨機ID,然后檢索這一組ID對應的記錄,經(jīng)過這樣優(yōu)化,頁面打開速度明顯快了很多,CPU占用率也小到幾乎為0,呵呵~順便用這個思路把sqlserver站點也優(yōu)化了一下!
速度比較:
用rand()取10條隨機記錄要400多毫秒,而用上面的方法只要0.6毫秒左右,差別太大了?。?!
復制代碼 代碼如下:
$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";
原理其實很簡單,就是產(chǎn)生一組隨機ID,然后檢索這一組ID對應的記錄,經(jīng)過這樣優(yōu)化,頁面打開速度明顯快了很多,CPU占用率也小到幾乎為0,呵呵~順便用這個思路把sqlserver站點也優(yōu)化了一下!
速度比較:
用rand()取10條隨機記錄要400多毫秒,而用上面的方法只要0.6毫秒左右,差別太大了?。?!
您可能感興趣的文章:
- MySQL的指定范圍隨機數(shù)函數(shù)rand()的使用技巧
- mysql 某字段插入隨機數(shù)(插入隨機數(shù)到MySQL數(shù)據(jù)庫)
- MySQL查詢隨機數(shù)據(jù)的4種方法和性能對比
- mysql獲取隨機數(shù)據(jù)的方法
- mysql優(yōu)化取隨機數(shù)據(jù)慢的方法
- MySQL取出隨機數(shù)據(jù)
- 從MySQL數(shù)據(jù)庫表中取出隨機數(shù)據(jù)的代碼
- MySQL中的RAND()函數(shù)使用詳解
- MySQL下的RAND()優(yōu)化案例分析
- MySQL優(yōu)化之對RAND()的優(yōu)化方法
- MySQL Order By Rand()效率分析
- mysql中RAND()隨便查詢記錄效率問題和解決辦法分享
- MYSQL隨機抽取查詢 MySQL Order By Rand()效率問題
- MySQL rand函數(shù)實現(xiàn)隨機數(shù)的方法
- PHP mt_rand() 函數(shù)
相關文章
php空間不支持socket但支持curl時recaptcha的用法
php空間不支持socket但支持curl時recaptcha的用法,需要的朋友可以參考下。2011-11-11PHP基于curl實現(xiàn)模擬微信瀏覽器打開微信鏈接的方法示例
這篇文章主要介紹了PHP基于curl實現(xiàn)模擬微信瀏覽器打開微信鏈接的方法,結合實例形式分析了php使用curl通過設置HTTP_USER_AGENT實現(xiàn)模擬微信瀏覽器相關操作技巧,需要的朋友可以參考下2019-02-02PHP中使用addslashes函數(shù)轉義的安全性原理分析
這篇文章主要介紹了PHP中使用addslashes函數(shù)轉義的安全性原理分析,較為深入的分析了addslashes函數(shù)的用法及ecshop自定義函數(shù)addslashes_deep的不足之處,非常具有實用價值,需要的朋友可以參考下2014-11-11PHP中通過ADO調用Access數(shù)據(jù)庫的方法測試不通過
PHP中通過ADO調用Access數(shù)據(jù)庫的方法測試不通過...2006-12-12