对于那种数据很大的情况,一下子查询全部属实是太消耗内存了,而且查询速度也慢了,所以产生了一个想法,就是能不能实现限制数据库每次查询的条数,这样对于服务器内存的负载就大大减小了,打个比方,我们可以实现每次查询10条数据,处理之后在查询下个10条数据,以此类推,虽然说这个功能自己用不着,但是打着求真务实的精神,还是想研究一下。
& H1 t: J, N$ Q0 S$ p' J 找遍了全网,发现居然没有实例代码,可能是我的想法太过于小众了吧,那些大厂对于数据库内存的处理可能是更加高效更加复杂的处理方案,肯定不是我想的这么简单,但是呢我还是把代码研究出来了,并不是很难,今天就分享出来,希望可以帮助到有需要的人!
5 g3 B& r+ E& W1 G5 U, H; p$sql = "select count(*) from dsp_yh"; //这里查询到所有数据
$jes = $mysql->getOne($sql); //执行sql语句
$mei=10; //这里输入每次查询多少条数据
$kai=0;
$je=array();
while($jes > $kai){
$sql = "select * from dsp_yh LIMIT $kai,$mei";
$je[] = $mysql->getAll($sql);
$kai = $kai + 10;
}
$arr=array();
foreach($je as $i => $v){
$i=0;
$ii=$mei;
while($i < $ii){
$arr[] = $v[$i];
$i++;
}
}
$je = $arr;
$je = array_filter($je);
print_r($je); //每次打印10条数据,并且全部打印完
|