亚洲精品久久久久久第一页-人妻少妇精彩视品一区二区三区-91国产自拍免费视频-免费一级a在线播放视频正片-少妇天天日天天射天天爽-国产大屁股喷水视频在线观看-操美女骚穴抽插性爱视频-亚洲 欧美 中文字幕 丝袜-成人免费无码片在线观看

mysql實(shí)現(xiàn)分頁查詢 mysql分頁語句怎么寫( 二 )


select * from orders_history where type=8 limit 100000,1;select id from orders_history where type=8 limit 100000,1;select * from orders_history where type=8 and id>=(select id from orders_history where type=8 limit 100000,1) limit 100;select * from orders_history where type=8 limit 100000,100;4條語句的查詢時(shí)間如下:
第1條語句:3674ms第2條語句:1315ms第3條語句:1327ms第4條語句:3710ms
針對上面的查詢需要注意:
比較第1條語句和第2條語句:使用 select id 代替 select * 速度增加了3倍比較第2條語句和第3條語句:速度相差幾十毫秒比較第3條語句和第4條語句:得益于 select id 速度增加,第3條語句查詢速度增加了3倍這種方式相較于原始一般的查詢方法,將會增快數(shù)倍 。
使用 id 限定優(yōu)化
這種方式假設(shè)數(shù)據(jù)表的id是連續(xù)遞增的,則我們根據(jù)查詢的頁數(shù)和查詢的記錄數(shù)可以算出查詢的id的范圍,可以使用 id between and 來查詢:
select * from orders_history where type=2 and id between 1000000 and 1000100 limit 100;查詢時(shí)間:15ms 12ms 9ms
這種查詢方式能夠極大地優(yōu)化查詢速度,基本能夠在幾十毫秒之內(nèi)完成 。限制是只能使用于明確知道id的情況,不過一般建立表的時(shí)候,都會添加基本的id字段,這為分頁查詢帶來很多便利 。
還可以有另外一種寫法:
select * from orders_history where id >= 1000001 limit 100;當(dāng)然還可以使用 in 的方式來進(jìn)行查詢,這種方式經(jīng)常用在多表關(guān)聯(lián)的時(shí)候進(jìn)行查詢,使用其他表查詢的id集合,來進(jìn)行查詢:
select * from orders_history where id in(select order_id from trade_2 where goods = 'pen')limit 100;這種 in 查詢的方式要注意:某些 mysql 版本不支持在 in 子句中使用 limit 。
使用臨時(shí)表優(yōu)化
這種方式已經(jīng)不屬于查詢優(yōu)化,這兒附帶提一下 。
對于使用 id 限定優(yōu)化中的問題,需要 id 是連續(xù)遞增的,但是在一些場景下,比如使用歷史表的時(shí)候,或者出現(xiàn)過數(shù)據(jù)缺失問題時(shí),可以考慮使用臨時(shí)存儲的表來記錄分頁的id,使用分頁的id來進(jìn)行 in 查詢 。這樣能夠極大的提高傳統(tǒng)的分頁查詢速度,尤其是數(shù)據(jù)量上千萬的時(shí)候 。
關(guān)于數(shù)據(jù)表的id說明
一般情況下,在數(shù)據(jù)庫中建立表的時(shí)候,強(qiáng)制為每一張表添加 id 遞增字段,這樣方便查詢 。
如果像是訂單庫等數(shù)據(jù)量非常龐大,一般會進(jìn)行分庫分表 。這個(gè)時(shí)候不建議使用數(shù)據(jù)庫的 id 作為唯一標(biāo)識,而應(yīng)該使用分布式的高并發(fā)唯一 id 生成器來生成,并在數(shù)據(jù)表中使用另外的字段來存儲這個(gè)唯一標(biāo)識 。
使用先使用范圍查詢定位 id (或者索引),然后再使用索引進(jìn)行定位數(shù)據(jù),能夠提高好幾倍查詢速度 。即先 select id,然后再 select *;


以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問題,請您及時(shí)就醫(yī)或請專業(yè)人士給予相關(guān)指導(dǎo)!

「愛刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對您有所幫助: