一樣的功能,不一樣的寫法,時間和內存佔用差了幾千倍,不廢話,直接上代碼json
第一種寫法:
代碼以下:ui
$Rs=DB::get($_ENV['DB'],3,"SELECT * FROM _xiazhu WHERE uid IN(SELECT id FROM _user WHERE id<5000)"); var_dump($Rs);
內存和時間:
內存使用:96514.53Kb 運行時間:1272.73mscode
第二種寫法:
代碼以下:內存
$Sql=''; $Rs=DB::get($_ENV['DB'],3,"SELECT id FROM _user WHERE id<5000"); $Sql.=(count($Rs)>0) ? " AND id IN(".strtr(json_encode($Rs,JSON_UNESCAPED_UNICODE),array('{"id":"'=>'','"}'=>'','['=>'',']'=>'')).')' : ''; unset($Rs); $Rs=DB::get($_ENV['DB'],3,"SELECT * FROM _xiazhu WHERE 1=1{$Sql}"); var_dump($Rs); unset($Sql);
內存和時間:
內存使用:9.77Kb 運行時間:11.97ms開發
由此可見,若是你不急於追趕開發進度的話,建議你使用第二種方法分開寫,速度會有明顯的差別.get