中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL分頁知識點講解

發布時間:2021-09-16 16:20:57 來源:億速云 閱讀:133 作者:chen 欄目:大數據

本篇內容主要講解“MySQL分頁知識點講解”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“MySQL分頁知識點講解”吧!

在系統中需要分頁的操作通常會使用limit加上偏移量的方法實現,同時加上合適的order by 子句。如果有對應的索引,通常效率會不錯,否則MySQL需要做大量的文件排序操作。

一個非常令人頭疼問題就是當偏移量非常大的時候,例如可能是limit 10000,20這樣的查詢,這是mysql需要查詢10020條然后只返回最后20條,前面的10000條記錄都將被舍棄,這樣的代價很高。

優化此類查詢的一個最簡單的方法是盡可能的使用索引覆蓋掃描,而不是查詢所有的列。然后根據需要做一次關聯操作再返回所需的列。對于偏移量很大的時候這樣做的效率會得到很大提升。

對于下面的查詢:

select id,title from collect limit 90000,10;

該語句存在的最大問題在于limit M,N中偏移量M太大(我們暫不考慮篩選字段上要不要添加索引的影響),導致每次查詢都要先從整個表中找到滿足條件 的前M條記錄,之后舍棄這M條記錄并從第M+1條記錄開始再依次找到N條滿足條件的記錄。

如果表非常大,且篩選字段沒有合適的索引,且M特別大那么這樣的代價是非常高的。試想,如我們下一次的查詢能從前一次查詢結束后標記的位置開始查找,

找到滿足條件的100條記錄,并記下下一次查詢應該開始的位置,以便于下一次查詢能直接從該位置 開始,這樣就不必每次 查詢都先從整個表中先找到滿足條件的前M條記錄,舍棄,在從M+1開始再找到100條滿足條件的記錄了。

先查詢出主鍵id值

select id,title from collect where id>=(select id from collect order by id limit 90000,1) limit 10;

原理:先查詢出90000條數據對應的主鍵id的值,然后直接通過該id的值直接查詢該id后面的數據。

方法三:“關延遲聯”

如果這個表非常大,那么這個查詢可以改寫成如下的方式:

Select news.id, news.description from news inner join (select id from news order by title limit 50000,5) as myNew using(id);

這里的“關延遲聯”將大大提升查詢的效率,它讓MySQL掃描盡可能少的頁面,獲取需要的記錄后再根據關聯列回原表查詢需要的所有列。這個技術也可以用在優化關聯查詢中的limit。

建立復合索引 acct_id和create_time

select * from acct_trans_log WHERE  acct_id = 3095  order by create_time desc limit 0,10
mysql> SELECT id,a FROM t1 Limit 99990,5;+-------+-------+| id    | a     |+-------+-------+| 99991 | 99991 || 99992 | 99992 || 99993 | 99993 || 99994 | 99994 || 99995 | 99995 |+-------+-------+5 rows in set (0.04 sec)

到此,相信大家對“MySQL分頁知識點講解”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

临漳县| 福建省| 永济市| 沙坪坝区| 贵溪市| 河源市| 湟中县| 锡林浩特市| 南宁市| 通辽市| 高要市| 富蕴县| 上林县| 淳安县| 灌阳县| 津南区| 海南省| 嘉定区| 玛沁县| 浦江县| 广河县| 漯河市| 凌海市| 黄陵县| 修武县| 康平县| 方正县| 定西市| 青铜峡市| 吴江市| 谷城县| 同江市| 伊宁县| 大兴区| 新化县| 白玉县| 金乡县| 彩票| 吴江市| 阳新县| 梅州市|