1 回答

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超6個(gè)贊
直接用limit start, count分頁(yè)語(yǔ)句, 也是我程序中用的方法:
select * from product limit start, count
當(dāng)起始頁(yè)較小時(shí),查詢沒有性能問題,我們分別看下從10, 100, 1000, 10000開始分頁(yè)的執(zhí)行時(shí)間(每頁(yè)取20條), 如下:
select * from product limit 10, 20 0.016秒
select * from product limit 100, 20 0.016秒
select * from product limit 1000, 20 0.047秒
select * from product limit 10000, 20 0.094秒
我們已經(jīng)看出隨著起始記錄的增加,時(shí)間也隨著增大, 這說(shuō)明分頁(yè)語(yǔ)句limit跟起始頁(yè)碼是有很大關(guān)系的,那么我們把起始記錄改為40w看下(也就是記錄的一般左右) select * from product limit 400000, 20 3.229秒
再看我們?nèi)∽詈笠豁?yè)記錄的時(shí)間
select * from product limit 866613, 20 37.44秒
難怪搜索引擎抓取我們頁(yè)面的時(shí)候經(jīng)常會(huì)報(bào)超時(shí),像這種分頁(yè)最大的頁(yè)碼頁(yè)顯然這種時(shí)
間是無(wú)法忍受的。
從中我們也能總結(jié)出兩件事情:
1)limit語(yǔ)句的查詢時(shí)間與起始記錄的位置成正比
2)mysql的limit語(yǔ)句是很方便,但是對(duì)記錄很多的表并不適合直接使用。
添加回答
舉報(bào)