PHP對接口執行效率慢的優化

PHP對接口執行效率慢的優化

形成執行效率低的緣由能夠由不少方面找緣由
  • 從代碼層面,代碼質量低,執行效率也會有很大影響的。
  • 從硬件方面,服務器配置低,服務器配置是基礎,這個跑不動確定慢。
  • 從數據量方面,查詢數據量過多,sql語句過於繁雜,執行緩慢。
服務器

從配置上作提高,對於系統總體的執行效率是至關明顯的,這一點沒有什麼好質疑的,只要有實力,天然就能夠多在這方面作提高了。php

數據查詢

這個查詢的優化,涉及sql的優化,或者到數據庫的優化,下面有幾個簡單的優化方案。sql

  • sql的優化,適當使用鏈表查詢,使用鏈接(JOIN)來代替子查詢,通常大表和多表的狀況避免使用JOIN,這種狀況下使用JOIN反而達不到簡化查詢的效果。
  • sql的優化,查詢表數據時精確字段名進行查詢,避免沒必要要的字段查詢。
  • sql的優化,適當使用主外鍵和索引,索引字段的查詢效率在大表查詢的效率對比至關明細。可是針對對索引得使用,稍做備註。索引在不少狀況下是會失效得,好比,索引列得字段內容若總體佔比過大,那這個索引也就沒什麼做用了;not in ,not exist 中也是無效得;對索引列進行運算.須要創建函數索引等
  • sql的優化,適當使用in查詢,儘可能少用,最好用union代替,效率會明顯高 。 用in時,儘可能使用索引字段(曾經老大說in在100個字段內比較高效,1000則爲零界點,不過還沒具體測試過)。
  • sql的優化,適當使用模糊查詢。最好不用,替換成全等,由於模糊中沒法用索引

    ··········
  • 數據庫的優化,字段使用合理的字段類型,另一個提升效率的方法是在可能的狀況下,應該儘可能把字段設置爲NOTNULL,避免空間浪費。
  • 數據庫的優化,合理設計表結構。好比,有時多些必要得冗餘得字段,要好過連表查詢。
  • 數據庫的優化,合理設計索引,在聯表查詢或條件篩選中,數據表增長索引後查詢的效率會快特別多。

    ··········
代碼優化

代碼上的優化也是因人而異的,每一個人可能編碼習慣和風格不一樣,對於提升代碼性能有各自的看法,如下是個人部分見解。數據庫

  • foreach合理使用,儘可能少在循環中套用循環,在循環次數過多的狀況下,很是耗性能。
  • 循環中,儘可能避免數據操做,特別是查詢操做,在循環次數過多的狀況下,屢次調用效率很低,可一次獲取數據再拼接。
  • 同理,在循環中,避免配置的屢次獲取,和time()函數方法的調用,這種一次聲明就能夠重複使用。
  • 在php中,單引號和雙引號是有區別的,做爲一種習慣字符串我都用單引號,由於它無需編譯,對於效率,可能談不上差別大小,可能就一點點
  • 合理利用在php中的函數,像數組函數就很是豐富,要充分利用,通常不要本身去作他自己就支持的函數方法
  • 能夠用上字典的概念,將數組以新索引形式存儲起來,我在數據的重組中很經常使用
  • 根據場景,合理使用緩存能夠減小重複的數據查詢,提升效率
  • 合理拆分功能,好比一個列表查詢,並帶有詳情查看,能夠將此處拆成兩個接口實現,在須要時獲取數據,減小資源浪費。 ··········
相關文章
相關標籤/搜索