ubuntu apache mysql 正在等待响应_php+mysql环境下正在等待localhost的响应这个病怎么治呢?...

本地安装的php和mysql环境,用localhost访问某页面,该页面只是一个简单的链接mysql数据库并按以下sql语句执行查询并echo出数据,其中还用到了一个网上很流行的分页函数,每页显示20条数据,总的数据库有进30万条数据。

SELECT Id,col1,col2col3,col4,col5 FROM DBtable LIMIT 100,20;

这条语句在mysql任务窗口里面的执行时间只有0.01sec

但是要打开这个PHP页面却需要近1分钟时间,至少也要40秒。

打开页面时,一开始都在显示正在等待localhost的响应,然后就非常慢。

等地host文件我已经加了127.0.0.1 localhost

my.ini文件内容如下:

basedir = L:/develop/mysql-5.6.24-win32

datadir = L:/develop/TestMysqlData

character_set_server=utf8

character_set_client=utf8

bind-address = 127.0.0.1

max_connections=100

负责链接数据库的config.php的执行时间也很短:[config.php页面执行时间:0.0050408840179443 ]秒

$stime22=microtime(true);

$host="localhost";

$db_user="root";

$db_pass="123456";

$db_name="moive";

$timezone="Asia/Shanghai";

$link=mysql_connect($host,$db_user,$db_pass);

mysql_select_db($db_name,$link);

mysql_query("SET names UTF8");

header("Content-Type: text/html; charset=utf-8");

$etime22=microtime(true);//获取程序执行结束的时间

$total22=$etime22-$stime22; //计算差值

echo "
[config.php页面执行时间:{$total22} ]秒";

?>

通过分析发现,该php页面中链接数据库后执行sql的时间长是罪魁祸首!!!![执行sql时间:54.735748052597 ]秒

include_once("config.php");

require_once('page.class.php'); //分页类!!!

ini_set('max_execution_time','100');//防止出现PHP Fatal error: Maximum execution time of 30 seconds

$showrow = 20; //一页显示的行数

$curpage = empty($_GET['page']) ? 1 : $_GET['page']; //当前的页,还应该处理非数字的情况

$url = "?page={page}"; //分页地址,如果有检索条件 ="?page={page}&q=".$_GET['q']

//开始计时

$stime=microtime(true);

$sql = "SELECT Id,col1,col2col3,col4,col5 FROM DBtable LIMIT";

$total = mysql_num_rows(mysql_query($sql)); //记录总条数

if (!empty($_GET['page']) && $total != 0 && $curpage > ceil($total / $showrow))

$curpage = ceil($total_rows / $showrow); //当前页数大于最后页数,取最后一页

//获取数据

$sql .= " LIMIT " . ($curpage - 1) * $showrow . ",$showrow;";

$query = mysql_query($sql);

$etime=microtime(true);//获取程序执行结束的时间

$total=$etime-$stime; //计算差值

echo "
[执行sql时间:{$total} ]秒";

echo "

[SQL:{$sql} ]

";

?>

网上查了一些关于等待响应时间过长的解决办法,经过尝试也无效。。

请帮我分析分析是什么原因呢?我感觉主要是这个PHP等到mysql响应的时间很长,而实际执行sql语句的时间其实也是很快的,为什么会出现这种貌似找不到mysql的现象呢?

更多 0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值