在非大數據(幾萬以上記錄)的情況下,影響接口響應速度的因素中最大的是查詢數據庫的次數,其次才是數組遍歷和簡單數據處理(如根據已有字段增加新的屬性,或計算值)。
一般一次數據庫查詢需要50毫秒以上,最快也要20毫秒。
數組遍歷,簡單排序和簡單數據處理一次通常10毫秒左右。
當然在大數據的情況下,這些處理時間都快度增加。
提高接口響應速度的方法有:
一:減少查詢次數,特別是要盡量杜絕嵌套查詢。把能合并的查詢合并成一個,最后轉成map,最后在查找處理。這能大大減少響應速度。
我遇到一個嵌套查詢用時120秒左右,優化后變成1–2秒。
二:使用什么字段就選擇什么字段,盡量減少字段。這樣給前段時省流量并且能提高響應速度。
三:對真正的大數據處理,并且不需要實時的,可以用定時任務處理后存入新表,使用時直接查新表。
四:在查詢的字段上建立索引。
我遇到一個大數據查詢,沒有在查詢字段上建立索引,用時12秒,建立索引后響應時間提高到1.1秒。可見索引的作用大。