1. 程式人生 > >sql效能優化第一篇之分頁資料與count資料一次性獲取

sql效能優化第一篇之分頁資料與count資料一次性獲取

相信大部分人都會遇到:在資料庫的資料量很大時,分頁需要幾秒鐘才會全部完成;包括分頁list的獲取和count的獲取。那我們完全可以將這兩步放到一次sql去執行獲取,減少一半的查詢時間。這裡get到sql_calc_found_rows和SELECT FOUND_ROWS()這兩個知識點。看程式碼:

select SQL_CALC_FOUND_ROWS 
    col_name1 as colName1,
    col_name2 as colName2
from table_name limit 0,10;
select FOUND_ROWS() as count;

在SELECT語句中加上修飾SQL_CALC_FOUND_ROWS 之後,SELECT FOUND_ROWS() 會返回滿足條件記錄的總數。

這樣,你執行完 select SQL_CALC_FOUND_ROWS 之後,再取一下記錄總數就行了。

現在,你會獲取到如下資料:

 看到沒有,兩個結果:第一個是分頁list,第二個是總數count。接下來怎麼辦,請繼續看第二篇。。。