欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

mysql分頁查詢的示例-創(chuàng)新互聯(lián)

這篇文章將為大家詳細講解有關(guān)mysql分頁查詢的示例,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

成都創(chuàng)新互聯(lián)是一家專注于網(wǎng)站設(shè)計制作、做網(wǎng)站與策劃設(shè)計,仙居網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十多年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:仙居等地區(qū)。仙居做網(wǎng)站價格咨詢:13518219792

LIMIT子句可以被用于強制 SELECT 語句返回指定的記錄數(shù)。LIMIT 接受一個或兩個數(shù)字參數(shù)。參數(shù)必須是一個整數(shù)常量。如果給定兩個參數(shù),第一個參數(shù)指定第一個返回記錄行的偏移量,第二個參數(shù)指定返回記錄行的大數(shù)目。初始記錄行的偏移量是 0(而不是 1)。下面,我們針對特例對mysql分頁查詢進行總結(jié)。

mysql提供分頁的功能:

SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset

最簡單的用法就是:

select * from table limit ?,?

這種是最簡單的limit分頁查詢。配合where條件使用:

select * from table where column > ? order by id limit ?,?

上邊這種情況,建議在column和id建立復合索引比較好。  
以上兩種情況,對于小數(shù)據(jù)量分頁查詢時,這樣的sql就足夠用了。但是對于百萬級以上的數(shù)據(jù)表,如果使用上邊的sql 的話,越往后limit語句的偏移量越來越大,查詢就會變得越來越慢。類似于:

select * from `user` where `cate`='陜西' order by id limit 100000,10

為了避免這種查詢,我們可以通過子查詢的方式來提高查詢效率。

select * from `user` where id >=(select * from `user` where `cate`='陜西' order by id limit 100000,1) and `cate`='陜西' limit 10

通過explain我們可以看出直接limit查詢和通過子查詢的差距:

直接limit查詢:
typepossible_keyskeykey_lenrefrowsExtra
ALL(NULL)(NULL)(NULL)(NULL)4076607
子查詢分頁查詢:
typepossible_keyskeykey_lenrefrowsExtra
PRIMARYrangePRIMARYPRIMARY42038331Using where
SUBQUERYindex(NULL)PRIMARY44076663Using index

可以看出,通過子查詢的方式,子查詢是在索引上進行的,而普通的查詢是在數(shù)據(jù)文件上進行的。通常來說,索引文件要比數(shù)據(jù)文件小的多,所以操作索引文件更直接高效。

此外,還可以通過join分頁方式

SELECT * FROM `user` AS t1 
JOIN (SELECT id FROM `user` ORDER BY id LIMIT 100000, 1) AS t2 
WHERE t1.id <= t2.id ORDER BY t1.id LIMIT 10;

join分頁和子查詢分頁的效率基本在一個等級上。(但是,子查詢需要在內(nèi)存中建立臨時表,查詢完畢后,MySQL需要撤銷這些臨時表。通過join可以避免這種情況)在分頁查詢前,可以進行判斷,如果是在限定頁數(shù)內(nèi),就使用基本分頁查詢,大于則使用子查詢分頁處理。

關(guān)于“mysql分頁查詢的示例”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

網(wǎng)頁標題:mysql分頁查詢的示例-創(chuàng)新互聯(lián)
URL標題:http://chinadenli.net/article40/dhjiho.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、電子商務(wù)網(wǎng)站策劃、商城網(wǎng)站軟件開發(fā)、網(wǎng)站維護

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)