PHP對接口執行效率慢的優化
阿新 • • 發佈:2017-12-17
服務器配置 time 過多 沒有 從數據 編碼習慣 不同 原因 執行
PHP對接口執行效率慢的優化
造成執行效率低的原因可以由很多方面找原因
- 從代碼層面,代碼質量低,執行效率也會有很大影響的。
- 從硬件方面,服務器配置低,服務器配置是基礎,這個跑不動肯定慢。
- 從數據量方面,查詢數據量過多,sql語句過於繁雜,執行緩慢。
服務器
從配置上做提升,對於系統整體的執行效率是相當明顯的,這一點沒有什麽好質疑的,只要有實力,自然就可以多在這方面做提升了。
數據查詢
這個查詢的優化,涉及sql的優化,或者到數據庫的優化,下面有幾個簡單的優化方案。
- sql的優化,適當使用鏈表查詢,使用連接(JOIN)來代替子查詢,一般大表和多表的情況避免使用JOIN,這種情況下使用JOIN反而達不到簡化查詢的效果。
- sql的優化,查詢表數據時精確字段名進行查詢,避免不必要的字段查詢。
- sql的優化,適當使用主外鍵和索引。
- sql的優化,適當使用in查詢,適當使用模糊查詢。
·········· - 數據庫的優化,字段使用合理的字段類型,另外一個提高效率的方法是在可能的情況下,應該盡量把字段設置為NOTNULL,避免空間浪費。
- 數據庫的優化,合理設計表結構。
··········
代碼優化
代碼上的優化也是因人而異的,每個人可能編碼習慣和風格不同,對於提高代碼性能有各自的見解,以下是我的部分看法。
- foreach合理使用,盡量少在循環中套用循環,在循環次數過多的情況下,非常耗性能。
- 循環中,盡量避免數據操作,特別是查詢操作,在循環次數過多的情況下,多次調用效率很低,可一次獲取數據再拼接。
- 同理,在循環中,避免配置的多次獲取,和time()函數方法的調用,這種一次聲明就可以重復使用。
- 在php中,單引號和雙引號是有區別的,作為一種習慣字符串我都用單引號,因為它無需編譯,對於效率,可能談不上差異大小,可能就一點點
- 合理利用在php中的函數,像數組函數就非常豐富,要充分利用,一般不要自己去做他本身就支持的函數方法
- 可以用上字典的概念,將數組以新索引形式存儲起來,我在數據的重組中很常用
- 根據場景,合理使用緩存可以減少重復的數據查詢,提高效率
- 合理拆分功能,比如一個列表查詢,並帶有詳情查看,可以將此處拆成兩個接口實現,在需要時獲取數據,減少資源浪費。
··········
PHP對接口執行效率慢的優化