sql實現(xiàn)分頁查詢 為什么MySQL在數(shù)據(jù)庫較大的時候分頁查詢很慢,如何優(yōu)化?
為什么MySQL在數(shù)據(jù)庫較大的時候分頁查詢很慢,如何優(yōu)化?正如房東所說,分頁查詢在我們的實際應用中非常常見,也是問題最多的查詢場景。例如,對于下面的簡單語句,通常的思考方式是在name、age、reg
為什么MySQL在數(shù)據(jù)庫較大的時候分頁查詢很慢,如何優(yōu)化?
正如房東所說,分頁查詢在我們的實際應用中非常常見,也是問題最多的查詢場景。例如,對于下面的簡單語句,通常的思考方式是在name、age、register中u在time字段上創(chuàng)建一個復合索引。這樣,條件排序可以有效地利用索引,性能得到快速提高。
如上例所示,當limit子句變?yōu)椤發(fā)imit 100000,50”時,我們會發(fā)現(xiàn),如果只選擇了50條語句,為什么會變慢?
,所以我們會覺得很慢。
數(shù)據(jù)庫分頁怎樣實現(xiàn)?
分頁,前端和后端都可以實現(xiàn):
后端分頁:后端對數(shù)據(jù)庫數(shù)據(jù)進行分頁,前端調(diào)用接口獲取數(shù)據(jù),需要通過一個額外的頁數(shù)參數(shù)來指示要獲取哪一頁數(shù)據(jù),前端可以獲取數(shù)據(jù)進行顯示。一般情況下,后端會返回當前頁面數(shù)據(jù)之外的總頁數(shù)或總數(shù)據(jù)量,方便前端進行跳頁導航。當然,為了避免頻繁調(diào)用接口,它可以一次返回多頁數(shù)據(jù),這就需要前端和后端之間的通信;
前端分頁:前端分頁需要一次獲取所有數(shù)據(jù),緩存數(shù)據(jù),通常返回一個數(shù)據(jù)數(shù)組;然后通過JavaScript計算分頁,實現(xiàn)分頁跳轉和刷新顯示數(shù)據(jù)。
您需要注意的一點是如何在跳過頁面時更好地更新演示數(shù)據(jù)。如果使用react和Vue的MVVM框架,問題非常簡單。但是如果不使用它,也可以直接使用jQuery datatable的插件。如果需求相對簡單,而性能要求不高,那么也可以實現(xiàn)本機需求。
愛前端,愛分享。