場景:腳本每5分鐘執行一次,從數據庫中每次查詢1000數據進行處理,直處處理結束。兩種用while和do...while兩種方式實現的僞代碼以下:mysql
1. while...dosql
$count = mysql.query('select count (*) from tb where status=1'); $round = ($count % 1000) == 0 ? ($count / 1000) +1: ($count / 1000) while($round > 0){ $dbRes = mysql.query('select * from tb where status=1 limit 1000'); dealWithRes($dbRes); $round -= 1; }
2. do...while數據庫
do{ $dbRes = mysql.query('select * from tb where status=1 limit 1000'); if(count($dbRes) > 0){ dealWithRes($dbRes); } }while(count($dbRes) > 0)
比較:do...while沒有查詢次數的限制,對於源源不斷生成的數據可以及時處理,可以提高用戶體驗。spa