PHP+MySQL分页的优化~

    今天在本机布置网站的时候,发现后台有一个功能的分页特别的慢,要十多秒才能打开。本身机器也有一点慢,但是才1000多条数据就慢的不得了,以后怎么办。

    分页的那个SQL语句太复杂,有条件,有外链接,有排序,非常的慢,上网查了几种优化方式。最后对代码进行了优化,之后2秒就可以打开了。

 

$sql_stringx = "select a.uid from xl_members a where ".$where;
$total_nums = $db->getRowsNum ( $sql_stringx );

//上面用来读取符合条件文章的总数,网上有人说读取一次,做为变量一直往下页面传,省去之后的这次数据库读取,但我觉得太麻烦,没有做。

$cols = $db->getCol( $sql_stringx." order by a.uid desc LIMIT ".($page - 1) * $page_size.",".$page_size);

//这里查询符合本页条件文字的ID,因为这个表ID字段是关键字段,有索引所以这一条和上一条查询会快一些。
$sql_string = "select a.*,b.id as bid from xl_members a
   left join xl_business b on a.uid=b.mid
   where a.uid in(".implode(",", $cols).") order by a.uid desc";
$memberslist = $db->getList ( $sql_string );

//最后用取到的ID,为条件读取数据,网上查询以ID为条件,比用LIMIT速度快很多。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值