更新時間:2023-05-08 來源:黑馬程序員 瀏覽量:
在數(shù)據(jù)量比較大時,如果進行l(wèi)imit分頁查詢,在查詢時,越往后,分頁查詢效率越低。執(zhí)行l(wèi)imit分頁查詢耗時對比如下:
因為,當在進行分頁查詢時,如果執(zhí)行l(wèi)imit 9000000,10,此時需要MySQL排序前9000010記錄,僅僅返回9000000 - 9000010的記錄,其他記錄丟棄,查詢排序的代價非常大 。
優(yōu)化思路:一般分頁查詢時,通過創(chuàng)建覆蓋索引能夠比較好地提高性能,可以通過覆蓋索引加子查詢形式進行優(yōu)化
select* from tb_sku t. (select id from tb_sku order by id limit 9000000,10) a where thg = a.id;
先分頁查詢數(shù)據(jù)的同字段,確定了id之后,再用子查詢來過濾,只查詢這個試列表中的數(shù)據(jù),因為查詢id的時候,走的覆蓋索引,所以效率可以提升很多。