直接用limit start, count分頁語句, 也是我程序中用的方法:
* from limit start, count
當起始頁較小時,查詢沒有性能問題,我們分別看下從10mysql大數據量查詢, 100, 1000, 10000開始分頁的執行時間(每頁取20條), 如下:
* from limit 10, 20 0.016秒
* from limit 100, 20 0.016秒
* from limit 1000, 20 0.047秒
* from limit 10000, 20 0.094秒
我們已經看出隨著起始記錄的增加,時間也隨著增大, 這說明分頁語句limit跟起始頁碼是有很大關系的,那么我們把起始記錄改為40w看下(也就是記錄的一般左右) * from limit , 20 3.229秒
再看我們取最后一頁記錄的時間
* from limit , 20 37.44秒
難怪搜索引擎抓取我們頁面的時候經常會報超時,像這種分頁最大的頁碼頁顯然這種時
間是無法忍受的。
從中我們也能總結出兩件事情:
1)limit語句的查詢時間與起始記錄的位置成正比
2)mysql的limit語句是很方便mysql大數據量查詢,但是對記錄很多的表并不適合直接使用。