吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2742|回复: 13
收起左侧

[讨论] 写代码不难,优化代码才是真正的技术活

[复制链接]
cqwcns 发表于 2019-10-7 17:26
写代码不难,优化代码才是真正的技术活,特别是大数据应用。


小弟结合bootstrap-table写了一个服务器端分页,数据量数万条时还好,数据量到达数十万甚至一百万+时,卡得他妈都认不出,换页耗时十几秒到二十几秒。

不知道我的代码有没有优化的空间,请各位兄弟指导、砸砖

[PHP] 纯文本查看 复制代码
<?php
header( "Content-Type: text/html; charset=utf-8" );
set_time_limit( 60 );
include( "conn.php" );

//拼装搜索语句
$vSouSuo = "";
if ( isset( $_GET[ "search" ] ) && $_GET[ "search" ] != "" ) {

	$txtSouSuo = $mysqli->real_escape_string( $_GET[ "search" ] );
	$vSouSuo = " WHERE WangGeID LIKE '%" . $txtSouSuo . "%' OR WangGe LIKE '%" . $txtSouSuo . "%' OR DiZhiID LIKE '%" . $txtSouSuo . "%' OR PARENTID LIKE '%" . $txtSouSuo . "%'  OR BenJiMingCheng LIKE '%" . $txtSouSuo . "%' OR DiZhiJiBie LIKE '%" . $txtSouSuo . "%' OR DiZhiQuanCheng LIKE '%" . $txtSouSuo . "%' OR ChangJingLeiXing LIKE '%" . $txtSouSuo . "%' OR DiYuShuXing LIKE '%" . $txtSouSuo . "%' OR WagnLuoLaiYuan LIKE '%" . $txtSouSuo . "%' OR DiZhiLaiYuan LIKE '%" . $txtSouSuo . "%'";
};

//拼装排序语句
$vPaiXu = "";
if ( isset( $_GET[ "sort" ] ) ) {
	$vPaiXu = " ORDER BY " . $mysqli->real_escape_string( $_GET[ 'sort' ] ) . " " . $mysqli->real_escape_string( $_GET[ 'order' ] );
};

//拼装起点和偏移语句
$vFanWei = "";
if ( isset( $_GET[ "offset" ] ) ) {
	$vFanWei = " LIMIT " . $mysqli->real_escape_string( $_GET[ 'offset' ] ) . "," . $mysqli->real_escape_string( $_GET[ 'limit' ] );
};

if ( $result = $mysqli->query( "SELECT WangGeID,WangGe,DiZhiID,PARENTID,BenJiMingCheng,DiZhiJiBie,DiZhiQuanCheng,ChangJingLeiXing,DiYuShuXing,DiZhi1Ji,DiZhi2Ji,DiZhi3Ji,DiZhi4Ji,DiZhi5Ji,WagnLuoLaiYuan,DiZhiLaiYuan,LuRuShiJian,LuRuRen,ShiYongCiShu FROM dizhi$vSouSuo$vPaiXu$vFanWei" ) ) {
	$arr = array();
	if ( $result->num_rows > 0 ) {
		// 写入数组
		while ( $row = $result->fetch_assoc() ) {
			array_push( $arr, $row );
		};
		$result->close();

		// 获得总页数
		if ( $vSouSuo != "" ) {
			//如果有搜索条件
			if ( $result = $mysqli->query( "SELECT id FROM dizhi$vSouSuo" ) ) {
				$vHangShu = $result->num_rows;
				$result->close();
			};
		} else {
			//如果没有搜索条件
			if ( $result = $mysqli->query( "SELECT id FROM dizhi" ) ) {
				$vHangShu = $result->num_rows;
				$result->close();
			};
		};
		// 返回汇总数组
		$arrHuiZong = array( "total" => $vHangShu, "totalNotFiltered" => $vHangShu, "rows" => $arr );
		echo json_encode( $arrHuiZong, JSON_UNESCAPED_UNICODE );
	};
};


$mysqli->close();

?>

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| cqwcns 发表于 2019-10-7 17:27
上个UI图片:

20191007172334.png
Enter_R 发表于 2019-10-7 17:42
firefree 发表于 2019-10-7 17:46
wjw0716 发表于 2019-10-7 17:47
explain 一下sql 看看慢在哪里
iflower 发表于 2019-10-7 17:48
Enter_R 发表于 2019-10-7 17:42
PHP是最好的语言,

是没有之一的语言么?

huzpsb 发表于 2019-10-7 17:50
sort全排序改成手写的二分部分排序
即Qsort基准数两边二分本页位置,可以把O(nlog2n)改成O(log2n)
额微粒波地 发表于 2019-10-7 18:40
life is short ,you need python
豫黄河 发表于 2019-10-7 19:59
Enter_R 发表于 2019-10-7 17:42
PHP是最好的语言,

人生苦短,我用Python
reetin 发表于 2019-10-7 20:07
刚走进PHP的大门,看见一堆白头发的年轻人,吃惊的跟我说,PHP是最好的语言,。。。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-1 07:30

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表