mysql如何解決深度分頁問題

2021-10-08 14:04:49 字數 582 閱讀 3589

我們一般做深度分頁的時候, sql語句往往如下:

select * from tb_test order by id desc limit 10000, 20;

limit 10000 , 20的意思掃瞄滿足條件的10020行,扔掉前面的10000行,返回最後的20行。如果是limit 1000000 , 100,需要掃瞄1000100 行,在乙個高併發的應用裡,每次查詢需要掃瞄超過100w行,不慢就沒天理了。

select * from tb_test where `year` = 2017 and id > ***x order by id desc limit 20;

這裡有個限制條件,就是我們只能實現頁碼順序滾動

如果不得不做深度分頁,還有乙個**技巧:

# 反例(耗時129.570s)

select * from tb_test limit 20000000, 10;

# 正例(耗時5.114s)

select a.* from tb_test a, (select id from tb_test limit 20000000, 10) b where a.id = b.id;

如何解決oracle分頁查詢資料重複問題

本文 未作修改。oracle分頁查詢時,會遇到資料重複的問題,下面就教您乙個解決oracle分頁查詢資料重複問題的方法,希望對您能夠有所幫助。在oracle分頁查詢中,我們採用類似以下所示的公認的比較高效的資料庫分頁查詢語句 effective oracle by design中有描述 眾多orac...

深度學習如何解決生物除錯問題?

編者按 深度學習在近幾年實現了巨大的突破,而這一方法也被應用到越來越多的領域,用於解決過去在這些領域難以解決的問題。可以預見,在未來的科研中 深度學習 學科應用 將得到更廣闊的應用,生物學現在面臨著除錯的困難。生化系統 細胞 很複雜,深入研究它是十分有意義的。觀察你所了解的化合物是很有難度的,想要看...

如何解決mysql死鎖

見官方文件 可直接在mysql命令列執行 show engine innodb status g 檢視造成死鎖的sql語句,分析索引情況,然後優化sql 然後show processlist kill processid 另外可以開啟慢查詢日誌,linux下開啟需在my.cnf的 mysqld 裡面...