色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術文章
文章詳情頁

MySQL 分頁查詢的優化技巧

瀏覽:5日期:2023-10-03 11:38:20

在有分頁查詢的應用中,包括 LIMIT 和 OFFSET 的查詢十分常見,而且幾乎每個都會有一個 ORDER BY 子句。如果使用索引排序的話將對性能優化十分有幫助,否則服務端需要做很多文件排序。

一個高頻的問題是 offset 的值過大。如果查詢類似 LIMIT 10000, 20,將會產生10020行,并將之前的10000行丟棄,這樣的代價很高。假設所有的頁使用相同的頻次訪問,這樣的查詢將平均掃描一半數據表。為了優化他們,你可以在分頁視圖中限制最多可訪問的頁數,或者讓大便宜的查詢更有效。

一個改善性能簡單的技巧是在覆蓋索引上進行查詢操作而不是整行數據。你可以將結果與完整的行做一次聯合然后再獲取額外需要的列。這樣的效率會更高,例如下面的查詢:

SELECT film_id, description FROM sakila.film ORDER BY title LIMIT 50, 5;

如果數據表很大的話,則可以按下面的方式進行優化:

SELECT film.film_id, film.descriptionFROM sakila.filmINNER JOIN ( SELECT film_id FROM sakila.film ORDER BY title LIMIT 50, 5) ) as lim USING(film_id);

這種“推斷聯合查詢”能夠有效工作是因為它使用了索引減少了服務端盡可能少地訪問數據行去檢查數據。一旦復核要求的行查到了,將他們與對應的數據表的行進行聯合查詢以獲取對應行的其他列。

有些時候也可以將 limit 轉換為固定位置的查詢,這種方式可以對索引進行范圍掃描完成。例如,如果你預先計算一個固定位置的列 稱之為 position,可以重寫查詢如下:

SELECT film_id, description FROM sakila.filmWHERE position BETWEEN 50 AND 54 ORDER BY position;

排序的數據也可以使用類似的方式解決,但是通常會被 GROUP BY操作影響。大部分情況下需要提前計算和存儲排序值。

LIMIT 和 OFFSET 真正的問題是在OFFSET,這意味著服務端會把很多數據行丟棄。如果使用一個有序書簽來記錄下次獲取行的位置的話,則可以從上次的位置開始訪問接下來的數據。例如,如果你需要對出租記錄進行分頁,從最新的出租記錄開始往回查詢,則可以依賴于記錄的主鍵是一直增加的,因此可以對第一頁數據這樣查詢:

SELECT * FROM sakila.rentalORDER BY rental_id DESC LIMIT 20;

這個查詢返回16049到16030之間的數據。接下來的查詢可以從之前結束位置開始:

SELECT * FROM sakila.rentalWHERE rental_id < 16030 ORDER BY rental_id DESC LIMIT 20;

這個技巧不管你從多遠的偏移值開始查詢都是很有效的。

其他的一些技巧包括使用預先計算的統計值,或者通過聯合冗余了主鍵和排序列的數據表進行查詢,這兩種方式都是通過空間換取時間的方式提高查詢效率。

以上就是MySQL 分頁查詢的優化技巧的詳細內容,更多關于MySQL 分頁查詢的優化的資料請關注好吧啦網其它相關文章!

標簽: MySQL 數據庫
相關文章:
主站蜘蛛池模板: 日韩欧美视频一区二区在线观看 | 国产精品亚洲欧美日韩一区在线 | 亚洲在线天堂 | 国产日韩欧美自拍 | 韩国一级特黄清高免费大片 | 国产亚洲视频在线播放大全 | 狠狠色丁香久久婷婷综合_中 | 欧美成人久久久免费播放 | 老司机精品福利视频 | 国产91色综合久久免费 | 亚洲国产精品线播放 | 男人女人做刺激视频免费 | 欧美国产日韩在线观看 | 日日摸日日碰夜夜97 | 亚洲 欧美 91 | 国产在线观看午夜不卡 | 日韩 国产 欧美视频一区二区三区 | 日韩在线一区二区三区 | 国产一区二区在线不卡 | 国产精品特黄一级国产大片 | 久久精品最新免费国产成人 | 日本免费一二区视频 | 日黄网站| 国产精品久久久久久久久 | 日本aaaa级毛片在线看 | 欧美一级毛片特黄黄 | 成人看片黄a在线看 | 久久精品国产亚洲麻豆 | 久久精品国产国产精品四凭 | 黄色上床网站 | 最新三级网址 | 99久久精品男女性高爱 | www成人国产在线观看网站 | 国产精品久久久久久久毛片 | 久久久久99精品成人片三人毛片 | 悟空影视大全免费高清 | 国产日产精品_国产精品毛片 | 久久综合丁香 | 久久成人免费观看全部免费 | 国产精品国产国产aⅴ | 色综合久久久 |