日本伊人精品一区二区三区观看方式,亚洲一区二区久久久久久,亚洲精品无吗,欧美日韩一区二区高清

有考網有考網合作機構>西安培訓學校>西安新城區英泰移動通信培訓
西安新城區英泰移動通信培訓
全國統一學習專線 8:30-21:00
位置:有考網 > 計算機類 > php開發 > PHP導出數據為什么有時會超時?  正文

PHP導出數據為什么有時會超時?

發布時間:2021-09-01 14:48:54來源:轉載

PHP 能做很多事情。PHP 主要是用于服務端的腳本程序,因此可以用 PHP 來完成任何其它的 CGI 程序能夠完成的工作,例如收集表單數據,生成動態網頁,或者發送/接收 Cookies。那么,PHP導出數據為什么有時會超時?

一般情況下,導出超時可能都是以下三種情況

一、sql語句復雜,查詢時間過長;

二、處理查詢后數據邏輯冗余;

三、數據量過大導致響應超時。

優化建議

一、sql語句復雜,查詢時間過長

1、查看索引是否設置妥當,即所用的查詢條件是否有添加索引,當然索引不是越多越好,只需給常用的查詢條件加上即可,一般采用B+樹的索引方式(具體原因可自行百度,不再贅述)

2、在查詢語句中盡量避免IN、NOT IN、IS NULL、OR、!=、<>、LIKE、OR、NOT EXISTS這些查詢條件的出現,會導致索引失效。

IN查詢時,可以考慮用BETWEEN來代替

LIKE查詢時,僅當"%"在前時會索引失效,"%"在后是不會失效的

查詢條件里還要避免數字的出現,使用字符串,數字也會導致索引失效,例如,查詢:"pid"=1,可以優化為"pid"="1"

要盡量避免在循環中使用查詢語句,這種情況一般可以用join或者with來解決(當涉及到跨庫時,請謹慎使用這種方式!)

查詢時,可以指定需要查詢的字段,排除掉不需要的字段避免資源浪費

當數據量多大時,可以使用分頁和緩存來優化(具體方法請參考數據量過大導致響應超時部分)

二、處理查詢后數據邏輯冗余

在做數組循環時,盡量使用continue、break來減少沒必要的循環;

盡量減少if嵌套層數,在需要用到多個if-else時,使用switch可以提率,特別是在數據量大時

三、數據量過大導致響應超時

當數量兩過大,又不想用異步的方式導出excel文件時,可以嘗試使用csv來作為到處格式,且查詢導出數據時可以使用分頁的方式查詢,導出時利用ob_flush進行緩存。

當數據訪問次數過多時,建議使用redis緩存一些固定數據,減少mysql查詢次數。

相關內容: php開發 PHP導出數據超時 PHP

同類文章
相關熱詞
主站蜘蛛池模板: 海门市| 玉溪市| 嘉峪关市| 特克斯县| 凤庆县| 尼木县| 卢龙县| 犍为县| 鄂托克前旗| 常山县| 南充市| 三亚市| 舟山市| 武川县| 兴文县| 永靖县| 民权县| 九龙县| 平顺县| 洞头县| 贵港市| 临猗县| 苍南县| 息烽县| 平果县| 双辽市| 建阳市| 北京市| 蒲城县| 海南省| 泽州县| 平乐县| 南涧| 吴堡县| 桦甸市| 囊谦县| 凤庆县| 六盘水市| 虎林市| 龙川县| 三都|