【IT老齊074】海量資料大頁碼MySQL查詢
場景
分頁最後資料查詢慢,新增索引,索引失效
SELECT
*
FROM
blog_browse_history
ORDER BY
create_time
LIMIT 500000,
10;
查詢最佳化
利用索引覆蓋特性查詢第50000頁的起始時間,基於索引快速定位,向後取10條資料
SELECT
*
FROM
blog_browse_history
WHERE
create_time >= ( SELECT create_time FROM blog_browse_history ORDER BY create_time LIMIT 5000, 1 )
ORDER BY
create_time
LIMIT 10;
翻頁最佳化
連續翻頁,可利用上一頁最後一條記錄的時間作為下一頁的查詢起始時間,可以減少一次子查詢
SELECT
*
FROM
blog_browse_history
WHERE
create_time > '2021-03-20 :4:24'
ORDER BY
create_time
LIMIT 10;
重複資料處理
連續切換頁還需要考慮出現大量重複資料的情況,在後續頁查詢額外需要增加偏移量處理
考慮使用id作為分頁條件