页面执行时间太长,请各位大大帮忙看看
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>订单统计</title> <link rel="stylesheet" type="text/css" href="css/ui-lightness/jquery-ui-1.8.2.custom.css" /><link rel="stylesheet" type="text/css" href="css/style.css" /> <script src="js/jquery.js" type="text/javascript"></script> <script src="js/i18n/grid.locale-ja.js" type="text/javascript"></script> <script type='text/javascript' src='js/picnet.table.filter.min.js'></script> <script type="text/javascript" src="js/jquery.ui.core.js"></script> <script type="text/javascript" src="js/jquery.ui.widget.js"></script> <script type="text/javascript" src="js/jquery.ui.position.js"></script> <script type="text/javascript" src="js/jquery.ui.autocomplete.js"></script><!--<link rel="stylesheet" type="text/css" href="css/css.css" />--><!--<script src="js/jquery.jqGrid.min.js" type="text/javascript"></script>--><!--<link rel="stylesheet" type="text/css" href="css/style.css" />--><style type="text/css"> * { padding:0; margin:0; } body { font-family:verdana; font-size:12px; margin-left: 0px; margin-top: 0px; } .content { width:1200px; margin:20px 10px; } .content h1 { font-family:'??'; font-size:18px; padding-bottom:5px; } table { width:100%; } th, td { padding:6px 0; } th { background-color:#accdf4; color:#ffffff; } tr { background-color:#FFFFFE; } .odd { background-color:#FFFAFF; } .highlight { background-color:#E0E0E0;}.STYLE1 {font-size: 14px}.STYLE2 {font-size: 16px}</style></head><body><?PHPclass runtime{ var $StartTime = 0; var $StopTime = 0; function get_microtime() { list($usec, $sec) = explode(' ', microtime()); return ((float)$usec + (float)$sec); } function start() { $this->StartTime = $this->get_microtime(); } function stop() { $this->StopTime = $this->get_microtime(); } function spent() { return round(($this->StopTime - $this->StartTime) * 1000, 1); } }$runtime= new runtime;$runtime->start();include("conn.php");$to_date=date('Y-m-d');//按包装区域来统计邮件总数function sale_address_package_statistics($date,$account,$package){$sql="select `number` from `sale_orders` where `account`='$account' and date(`upload_date`) ='$date' GROUP BY `number`";$Result = mysql_query($sql);$number="(`number`='' ";while($rs = mysql_fetch_array($Result)){$number.=" or `number`=".$rs[0];}$number.=")";$sql_order_address="SELECT * FROM `sale_orders` T ";$sql_order_address.="WHERE ".$number;$sql_order_address.="AND `account` ='$account' ";if($package=='MIX'){$sql_order_address.="AND 1<(select count(*) from `sale_orders` where ".$number." AND `account` ='$account' AND `recipient_name`=T.`recipient_name` AND `ship_address_1`=T.`ship_address_1`) ";}else{$sql_order_address.="AND 1=(select count(*) from `sale_orders` where ".$number." AND `account` ='$account' AND `recipient_name`=T.`recipient_name` AND `ship_address_1`=T.`ship_address_1`) ";$sql_order_address.="AND `package_area`='$package' ";}$sql_order_address.="GROUP BY `recipient_name` , `ship_address_1`";$result_label = mysql_query($sql_order_address);$order_address=mysql_affected_rows();if(empty($order_address)){return 0;}else{return $order_address;}}?><h2 id="订单统计">订单统计</h2><div class="digg"> <table width="200" border="0" cellspacing="0"> <tr> <td width="72%"><table width="95%" border="0" cellspacing="1" bgcolor="#dddddd"> <tr> <td width="15%" align="center"> </td> <td align="center" bgcolor="eeeeee" colspan="3">PM_AC</td> <td align="center" bgcolor="eeeeee" colspan="3">CO_AC</td> <td align="center" bgcolor="eeeeee" colspan="3">UK_AC</td> <td align="center" bgcolor="eeeeee" colspan="3">UK_FR</td> <td align="center" bgcolor="eeeeee" colspan="3">UK_DE</td> </tr> <tr> <td width="25%" align="center"> </td> <td width="5%" align="center" bgcolor="eeeeee">SZ</td> <td width="5%" align="center" bgcolor="eeeeee">HK</td> <td width="5%" align="center" bgcolor="eeeeee">MIX</td> <td width="5%" align="center" bgcolor="eeeeee">SZ</td> <td width="5%" align="center" bgcolor="eeeeee">HK</td> <td width="5%" align="center" bgcolor="eeeeee">MIX</td> <td width="5%" align="center" bgcolor="eeeeee">SZ</td> <td width="5%" align="center" bgcolor="eeeeee">HK</td> <td width="5%" align="center" bgcolor="eeeeee">MIX</td> <td width="5%" align="center" bgcolor="eeeeee">SZ</td> <td width="5%" align="center" bgcolor="eeeeee">HK</td> <td width="5%" align="center" bgcolor="eeeeee">MIX</td> <td width="5%" align="center" bgcolor="eeeeee">SZ</td> <td width="5%" align="center" bgcolor="eeeeee">HK</td> <td width="5%" align="center" bgcolor="eeeeee">MIX</td> </tr> <tr> <td align="center" bgcolor="eeeeee"><span class="STYLE1"><?PHP echo $to_date;?></span></td> <td align="center"><?PHP echo sale_address_package_statistics($to_date,'PM_AC','SZ'); ?></td> <td align="center"><?PHP echo sale_address_package_statistics($to_date,'PM_AC','HK'); ?></td> <td align="center"><?PHP echo sale_address_package_statistics($to_date,'PM_AC','MIX'); ?></td> <td align="center"><?PHP echo sale_address_package_statistics($to_date,'CO_AC','SZ'); ?></td> <td align="center"><?PHP echo sale_address_package_statistics($to_date,'CO_AC','HK'); ?></td> <td align="center"><?PHP echo sale_address_package_statistics($to_date,'CO_AC','MIX') ?></td> <td align="center"><?PHP echo sale_address_package_statistics($to_date,'UK_AC','SZ'); ?></td> <td align="center"><?PHP echo sale_address_package_statistics($to_date,'UK_AC','HK'); ?></td> <td align="center"><?PHP echo sale_address_package_statistics($to_date,'UK_AC','MIX'); ?></td> <td align="center"><?PHP echo sale_address_package_statistics($to_date,'UK_FR','SZ'); ?></td> <td align="center"><?PHP echo sale_address_package_statistics($to_date,'UK_FR','HK'); ?></td> <td align="center"><?PHP echo sale_address_package_statistics($to_date,'UK_FR','MIX'); ?></td> <td align="center"><?PHP echo sale_address_package_statistics($to_date,'UK_DE','SZ'); ?></td> <td align="center"><?PHP echo sale_address_package_statistics($to_date,'UK_DE','HK'); ?></td> <td align="center"><?PHP echo sale_address_package_statistics($to_date,'UK_DE','MIX'); ?></td> </tr> </table> <?PHP $runtime->stop(); $runtimea= new runtime;$runtimea->start(); ?> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p></td> <td width="28%"></td> </tr></table></div><?PHP $runtimea->stop();echo "邮件统计页面执行时间: ".$runtime->spent()." 毫秒,订单统计页面执行时间:".$runtimea->spent()." 毫秒"; ?></body></html>
这个页执行要75秒左右,这还只是显示一天的数据,实际上我需要显示一个月的数据
主要是那个查询语句的问题,以下语句如果查询的记录在1700条左右的时候,需要35秒
SELECT * FROM `sale_orders` T
WHERE (`number`='' or `number`=81)
AND 1=(select count(*) from `sale_orders`
where (`number`='' or `number`=81)
AND `recipient_name`=T.`recipient_name`
AND `ship_address_1`=T.`ship_address_1`)
AND `package_area`='SZ'
GROUP BY `recipient_name` , `ship_address_1`
请问怎么优化啊?显示一天的数据需要75秒,那一个月的数据不是等吃一餐饭还没显示完
回复讨论(解决方案)
具体情况需具体分析,毕竟不是在做文字游戏
调试查询指令应听从 EXPLAIN 的建议
尽量少用select * ,需要哪个字段查哪个,还有,加索引
数据表需要优化。
可否desc给大家看看呢

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

在PHP中,應使用password_hash和password_verify函數實現安全的密碼哈希處理,不應使用MD5或SHA1。1)password_hash生成包含鹽值的哈希,增強安全性。 2)password_verify驗證密碼,通過比較哈希值確保安全。 3)MD5和SHA1易受攻擊且缺乏鹽值,不適合現代密碼安全。

PHP和Python各有優勢,選擇依據項目需求。 1.PHP適合web開發,尤其快速開發和維護網站。 2.Python適用於數據科學、機器學習和人工智能,語法簡潔,適合初學者。

PHP在電子商務、內容管理系統和API開發中廣泛應用。 1)電子商務:用於購物車功能和支付處理。 2)內容管理系統:用於動態內容生成和用戶管理。 3)API開發:用於RESTfulAPI開發和API安全性。通過性能優化和最佳實踐,PHP應用的效率和可維護性得以提升。

PHP類型提示提升代碼質量和可讀性。 1)標量類型提示:自PHP7.0起,允許在函數參數中指定基本數據類型,如int、float等。 2)返回類型提示:確保函數返回值類型的一致性。 3)聯合類型提示:自PHP8.0起,允許在函數參數或返回值中指定多個類型。 4)可空類型提示:允許包含null值,處理可能返回空值的函數。

PHP仍然具有活力,其在現代編程領域中依然佔據重要地位。 1)PHP的簡單易學和強大社區支持使其在Web開發中廣泛應用;2)其靈活性和穩定性使其在處理Web表單、數據庫操作和文件處理等方面表現出色;3)PHP不斷進化和優化,適用於初學者和經驗豐富的開發者。

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

在PHP中使用預處理語句和PDO可以有效防範SQL注入攻擊。 1)使用PDO連接數據庫並設置錯誤模式。 2)通過prepare方法創建預處理語句,使用佔位符和execute方法傳遞數據。 3)處理查詢結果並確保代碼的安全性和性能。

PHP和Python各有優劣,選擇取決於項目需求和個人偏好。 1.PHP適合快速開發和維護大型Web應用。 2.Python在數據科學和機器學習領域佔據主導地位。
