婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > PHP導出數據超時的優化建議

PHP導出數據超時的優化建議

熱門標簽:天津電銷外呼系統違法嗎 合肥ai電銷機器人費用 銀行信貸電話機器人 400電話個人能不能辦理 手機外呼系統什么原理 上海400客服電話怎么申請 凱立德地鐵站地圖標注 溫州外呼系統招商 滄州電銷外呼系統價格

一般情況下,導出超時可能都是以下三種情況:
  一、sql語句復雜,查詢時間過長;
  二、處理查詢后數據邏輯冗余;
  三、數據量過大導致響應超時。
接下來分別給出這三種情況的優化建議。

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

  1、查看索引是否設置妥當,即所用的查詢條件是否有添加索引,當然索引不是越多越好,只需給常用的查詢條件加上即可,一般采用B+樹的索引方式(具體原因可自行百度,不再贅述)
  2、在查詢語句中盡量避免IN、NOT IN、IS NULL、OR、!=、>、LIKE、OR、NOT EXISTS這些查詢條件的出現,會導致索引失效。
- IN查詢時,可以考慮用BETWEEN來代替
- LIKE查詢時,僅當"%"在前時會索引失效,"%"在后是不會失效的
- 查詢條件里還要避免數字的出現,使用字符串,數字也會導致索引失效,例如,查詢:"pid"=1,可以優化為"pid"="1"
- 要盡量避免在循環中使用查詢語句,這種情況一般可以用join或者with來解決(當涉及到跨庫時,請謹慎使用這種方式!)
- 查詢時,可以指定需要查詢的字段,排除掉不需要的字段避免資源浪費
- 當數據量多大時,可以使用分頁和緩存來優化(具體方法請參考數據量過大導致響應超時部分)
溫馨提示:在執行查詢語句后,可以通過show profiles來查詢語句的資源消耗情況來幫助你更好的優化sql語句;關于查詢語句是否使用了索引,可以在查詢語句前加explain來查看索引使用情況,例如:
explain select * from user where id= '1';

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

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

- 盡量減少if嵌套層數,在需要用到多個if-else時,使用switch可以提高效率,特別是在數據量大時
- 當進行數組賦值時,
  一次賦一個值,使用$arr[]=1,會比array_push($arr,"1"),更快,
  但是當需要多次賦值時,
    array_push($arr,"1","2","3",...),會比
    $arr[]="1";
    $arr[]="2"
    $arr[]="3"
    ...
  更快
  
- 遍歷數組進行賦值時,盡量使用引用的方式,減少內存開銷,例如:
  
    foreach($arr as $item){
      $item = 1;
      ...
    }

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

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

$page = 1;    // 頁面
$pageSize = 1000;    //每頁條數
while(
  $list = Db::name("user")->page($page)->limit($pageSize)->select()
)
{
  foreach($list as $item){
    // TODO 進行相應的邏輯處理
  }
  $page++;
}

當數據訪問次數過多時,建議使用redis緩存一些固定數據,減少mysql查詢次數。
當然,最好的方式還是使用異步的方式導出,建議使用python或者go語言搭建微服務來進行導出。

到此這篇關于PHP導出數據超時的優化的文章就介紹到這了,更多相關PHP導出數據超時內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 使用PHPExcel實現數據批量導出為excel表格的方法(必看)
  • 利用PHPExcel讀取Excel的數據和導出數據到Excel
  • 完美解決php 導出excle的.csv格式的數據時亂碼問題
  • 詳解thinkphp實現excel數據的導入導出(附完整案例)
  • PHP使用PHPexcel導入導出數據的方法
  • jquery+php實現導出datatables插件數據到excel的方法

標簽:七臺河 洛陽 怒江 白城 赤峰 溫州 酒泉 金華

巨人網絡通訊聲明:本文標題《PHP導出數據超時的優化建議》,本文關鍵詞  PHP,導出,數據,超時,的,優化,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PHP導出數據超時的優化建議》相關的同類信息!
  • 本頁收集關于PHP導出數據超時的優化建議的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 嘉峪关市| 康马县| 香河县| 阳城县| 武邑县| 巴楚县| 襄垣县| 阳春市| 诏安县| 乌兰浩特市| 宜宾市| 昭通市| 宕昌县| 丁青县| 辉南县| 东乌| 宁津县| 连山| 新兴县| 改则县| 蓝山县| 宜良县| 教育| 忻州市| 通化市| 红桥区| 乌审旗| 昌吉市| 宁德市| 温宿县| 昌都县| 鄂尔多斯市| 汤原县| 海淀区| 红安县| 新宁县| 柘荣县| 富顺县| 安阳市| 海丰县| 蒙城县|