網站用的是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不須要查詢記錄,直接返回結果,效率能夠提升一倍網站