網(wǎng)站建設(shè)市場(chǎng)供需分析外鏈服務(wù)
文章目錄
- 1.LIMIT分頁(yè)查詢(xún)的優(yōu)化概念
- 2.LIMIT分頁(yè)查詢(xún)優(yōu)化前后的效果
- 2.1.LIMIT分頁(yè)查詢(xún)優(yōu)化前
- 2.2.LIMIT分頁(yè)查詢(xún)優(yōu)化后
1.LIMIT分頁(yè)查詢(xún)的優(yōu)化概念
當(dāng)表中數(shù)據(jù)量小時(shí),分頁(yè)查詢(xún)基本上沒(méi)有什么壓力,查詢(xún)速度也會(huì)很快,但是一般當(dāng)表的數(shù)據(jù)量很龐大時(shí),上千萬(wàn)條數(shù)據(jù),此時(shí)分頁(yè)查詢(xún)將會(huì)很慢。
例如我們要查詢(xún)表中2000000-20000010的10條數(shù)據(jù),此時(shí)MySQL就需要排序表中前20000010條數(shù)據(jù),然后僅僅返回2000000~20000010之間的10條數(shù)據(jù),其余的兩千萬(wàn)條數(shù)據(jù)都丟棄,此時(shí)的查詢(xún)排序的代價(jià)是非常大的。
那么應(yīng)該如何優(yōu)化分頁(yè)查詢(xún)呢?思路如下:
在使用分頁(yè)查詢(xún)時(shí),通過(guò)覆蓋索引的方式提高查詢(xún)的性能,例如在select不使用*來(lái)查詢(xún),使用表中的主鍵字段進(jìn)行查詢(xún),然后將返回的數(shù)據(jù)看做一張表,最后通過(guò)子查詢(xún)的方式對(duì)分頁(yè)查詢(xún)進(jìn)行優(yōu)化。
要知道一切的SQL優(yōu)化都離不開(kāi)索引。
2.LIMIT分頁(yè)查詢(xún)優(yōu)化前后的效果
2.1.LIMIT分頁(yè)查詢(xún)優(yōu)化前
我們來(lái)查詢(xún)tb_user_100w表中900000-900010的10條數(shù)