网站用的是MySQL数据库,获取某一页的文章的代码基本以下:mysql
int start = countPerPage*(page-1);
执行select * from .... limit start, countPerPagesql
于分页时须要列出一些页码,这就须要得到文章总数,通常用select count(*) .......就能获取数据。这里的问题在于为了实现分页,须要对数据库进行两次查询,效率不高,因此想是否是能够用一次查询解决这个问题,上网搜了一下,果真找到答案:
mysql> SELECT SQL_CALC_FOUND_ROWS * FROM ... WHERE ... LIMIT 10;
mysql> SELECT FOUND_ROWS();数据库
参数SQL_CALC_FOUND_ROWS表示查询时记录查询结果数
函数FOUNT_ROWS返回上次查询(SQL_CALC_FOUND_ROWS)的结果数函数
虽然也须要select两次,不过第2次select不须要查询记录,直接返回结果,效率能够提升一倍网站