中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php設計高性能接口的技巧

發布時間:2020-06-25 17:32:25 來源:億速云 閱讀:175 作者:Leah 欄目:編程語言

今天就跟大家聊聊有關php設計高性能接口的技巧,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

一、服務器

從配置上做提升,對于系統整體的執行效率是相當明顯的,這一點沒有什么好質疑的,只要有實力,自然就可以多在這方面做提升了。

二、數據查詢

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

1. sql的優化,適當使用鏈表查詢,使用連接(JOIN)來代替子查詢,一般大表和多表的情況避免使用JOIN,這種情況下使用JOIN反而達不到簡化查詢的效果。

2. sql的優化,查詢表數據時精確字段名進行查詢,避免不必要的字段查詢。

3. sql的優化,適當使用主外鍵和索引,索引字段的查詢效率在大表查詢的效率對比相當明細。但是針對對索引得使用,稍作備注。索引在很多情況下是會失效得,比如,索引列得字段內容若整體占比過大,那這個索引也就沒什么作用了;not in ,not exist 中也是無效得;對索引列進行運算.需要建立函數索引等

4. sql的優化,適當使用in查詢,盡量少用,最好用union代替,效率會明顯高 。 用in時,盡量使用索引字段。sql的優化,適當使用模糊查詢。最好不用,替換成全等,因為模糊中無法用索引

5. 數據庫的優化,字段使用合理的字段類型,另外一個提高效率的方法是在可能的情況下,應該盡量把字段設置為NOTNULL,避免空間浪費。

6. 數據庫的優化,合理設計表結構。比如,有時多些必要得冗余得字段,要好過連表查詢。

7. 數據庫的優化,合理設計索引,在聯表查詢或條件篩選中,數據表增加索引后查詢的效率會快特別多。

三、代碼優化

代碼上的優化也是因人而異的,每個人可能編碼習慣和風格不同,對于提高代碼性能有各自的見解,以下是我的部分看法。

1. foreach合理使用,盡量少在循環中套用循環,在循環次數過多的情況下,非常耗性能。

2. 循環中,盡量避免數據操作,特別是查詢操作,在循環次數過多的情況下,多次調用效率很低,可一次獲取數據再拼接。

3. 同理,在循環中,避免配置的多次獲取,和time()函數方法的調用,這種一次聲明就可以重復使用。

4. 在php中,單引號和雙引號是有區別的,作為一種習慣字符串我都用單引號,因為它無需編譯,對于效率,可能談不上差異大小,可能就一點點

5. 合理利用在php中的函數,像數組函數就非常豐富,要充分利用,一般不要自己去做他本身就支持的函數方法

6. 可以用上字典的概念,將數組以新索引形式存儲起來,我在數據的重組中很常用

7. 根據場景,合理使用緩存可以減少重復的數據查詢,提高效率

8. 合理拆分功能,比如一個列表查詢,并帶有詳情查看,可以將此處拆成兩個接口實現,在需要時獲取數據,減少資源浪費。

四、業務邏輯優化

跟響應無關的程序(如記錄日志等)耗時過多,使用fastcgi_finish_request()函數沖刷(flush)所有響應的數據給客戶端并結束請求, 這使得客戶端結束連接后,需要大量時間運行的任務能夠繼續運行,且不影響響應客戶端的時間。

echo '例子:';
file_put_contents('log.txt', date('Y-m-d H:i:s') . " 上傳視頻\n", FILE_APPEND);
fastcgi_finish_request();
sleep(1);
file_put_contents('log.txt', date('Y-m-d H:i:s') . " 轉換格式\n", FILE_APPEND);
sleep(1);
file_put_contents('log.txt', date('Y-m-d H:i:s') . " 提取圖片\n", FILE_APPEND);

看完上述內容,你們對php設計高性能接口的技巧有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

灌云县| 松溪县| 曲周县| 灵台县| 繁峙县| 墨竹工卡县| 剑川县| 德安县| 垣曲县| 丹寨县| 青岛市| 霍城县| 尚义县| 青田县| 咸宁市| 凤冈县| 东城区| 廉江市| 布拖县| 玉龙| 蓝山县| 永善县| 朝阳区| 锡林浩特市| 巴中市| 望城县| 衡南县| 天水市| 垣曲县| 于田县| 连南| 玛沁县| 神木县| 上高县| 大埔区| 高州市| 黄山市| 教育| 北川| 惠来县| 盐津县|