真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

mysql分頁(yè)查詢(xún)的示例

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

克什克騰網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)建站,克什克騰網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為克什克騰1000多家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)要多少錢(qián),請(qǐng)找那個(gè)售后服務(wù)好的克什克騰做網(wǎng)站的公司定做!

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

mysql提供分頁(yè)的功能:

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

最簡(jiǎn)單的用法就是:

select * from table limit ?,?

這種是最簡(jiǎn)單的limit分頁(yè)查詢(xún)。配合where條件使用:

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

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

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

為了避免這種查詢(xún),我們可以通過(guò)子查詢(xún)的方式來(lái)提高查詢(xún)效率。

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

通過(guò)explain我們可以看出直接limit查詢(xún)和通過(guò)子查詢(xún)的差距:

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

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

此外,還可以通過(guò)join分頁(yè)方式

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分頁(yè)和子查詢(xún)分頁(yè)的效率基本在一個(gè)等級(jí)上。(但是,子查詢(xún)需要在內(nèi)存中建立臨時(shí)表,查詢(xún)完畢后,MySQL需要撤銷(xiāo)這些臨時(shí)表。通過(guò)join可以避免這種情況)在分頁(yè)查詢(xún)前,可以進(jìn)行判斷,如果是在限定頁(yè)數(shù)內(nèi),就使用基本分頁(yè)查詢(xún),大于則使用子查詢(xún)分頁(yè)處理。

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


網(wǎng)頁(yè)題目:mysql分頁(yè)查詢(xún)的示例
文章URL:http://weahome.cn/article/jodjhg.html

其他資訊

在線咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部