2009-10-09 68 views
-2

我使用MySQL的LIMIT同時顯示50行(頁),就像這樣:數據庫:SQL分頁 - 多少頁?

SELECT cols 
FROM table 
LIMIT 49, 50 

什麼對我來說,以確定有多少「頁」在我的結果集(最有效的方法我的查詢產生多少個記錄)?

之前,我運行上面的代碼,我應該只是運行一個快速和骯髒的:

SELECT COUNT(cols) 
FROM table 

,以確定我的結果行#設置?

(這似乎是一種低效運行2個查詢來做到這一點)

+3

你甚至還試圖就如何做的事情閱讀或只是等待響應...嘗試查詢你的第一個問題,響應已屈指可數在這。 – Petrogad

+1

如果我能找到我認爲的答案,我就不會問這個問題。爲什麼不發佈鏈接到答案,而不是刪除我的帖子。 –

+0

我不介意你是否刪除帖子,只要你發佈一個鏈接到答案並將此問題標記爲「重複」 –

回答

0

我想你了優化。爲了優化分頁過程,我唯一能做的就是讓計數保持在會話中,所以在頁面導航過程中只做一次,如果在分頁過程中添加了新項目,那麼不好的部分會很糟糕。

0

一種可能性(可能只適用於某些數據庫)是查看查詢計劃的內部,查看優化器預測的總行數。例如,在Oracle中,您可以訪問EXPLAIN計劃並查看優化程序估計,總共將返回x行。這一點的準確性當然取決於很多因素:表格索引的適當程度,統計數據的非陳舊程度等。