php|mysql|大数据量分页|BETWEEN AND , IN()
程序员文章站
2022-05-11 10:04:22
...
之前遇到过一个日志记录表,记录数量超过200万时,普通的采用LIMIT,OFFSET的分页方法明显感觉比较慢,翻页大概需要至少10几秒,这肯定是不可取的。 那么当你的数据表数据量非常大的时候,并且具有完整性的auto_incrementID,那么就可以考虑使用BEETWEENAND或
之前遇到过一个日志记录表,记录数量超过200万时,普通的采用LIMIT , OFFSET的分页方法明显感觉比较慢,翻页大概需要至少10几秒,这肯定是不可取的。
那么当你的数据表数据量非常大的时候,并且具有完整性的auto_increment ID,那么就可以考虑使用BEETWEEN AND 或者是 IN(n1, n2, n3, n4, n5, n6, ......) PHP MySQL
'; echo '当前表格的数据总量为:'.$total.'
'; echo '设定的每页的记录数(步长)为:'.$pageSize.'
'; echo '那么则会有分页数量:'.$count.'
'; echo '设定的分页步长为:'.$pageOffset.'
'; //===========================================================================================================// $start = $page * $pageSize; $end = $start + $pageSize -1; $sql = "SELECT id,uid,time,num,letter FROM sign WHERE id BETWEEN $start AND $end"; echo $sql.'
'; $result = fetchs($sql, $link); echo ''; foreach($result as $val){ echo ''.$val['id'].','; } echo ''; $page ++; echo ''; if($page >= 1 && $page '.($page+$i).''; } } echo ''; //===========================================================================================================// $etime = microtime(true); echo $stime.'
'; echo $etime.'
'; echo '页面花费时间为:'.round($etime - $stime, 3);
上一篇: cdh4 spark配置LZO