av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術(shù)文章
文章詳情頁

mysql優(yōu)化 - mysql 分頁查詢優(yōu)化。

瀏覽:117日期:2022-06-17 10:27:15

問題描述

table 表中30萬記錄 id,自增主鍵, node,create_at 都有索引 但是沒有聯(lián)合索引

下面的語句查一次要8s左右, 可以預(yù)估隨著數(shù)據(jù)的繼續(xù)增加,速度會越來越慢。 最近在學(xué)習(xí) mysql 查詢優(yōu)化

也看了很多文章,教程(但是沒有系統(tǒng)的看mysql手冊,不好意思)

請各位朋友指導(dǎo)下,如何優(yōu)化,如果可以 請大概講述下,怎么分析的,為什么使用xxxx方式優(yōu)化就會有效。

謝謝各位。

EXPLAINSELECT `id` FROM `table` WHERE `node` = 2 ORDER BY `create_at` DESC LIMIT 12 OFFSET 69996------------------------------------------------------------------------ id: 1 select_type: SIMPLEtable: table type: refpossible_keys: node key: node key_len: 5 ref: const rows: 72278Extra: Using where; Using filesort

問題解答

回答1:

不要使用OFFSET方式分頁以你的例子來說

MySQL會先查詢所有符合條件的數(shù)據(jù),通過EXPLAIN可以發(fā)現(xiàn)(72278),查詢了這么多

因為OFFSET的關(guān)系,MySQL丟棄前面(69996)的記錄。查詢優(yōu)化就是指在第1步的時候就讓MySQL查詢最少的數(shù)據(jù)。

我目前在用的分頁方式(數(shù)據(jù)量千萬級),依舊拿你的例子來說,假設(shè)分頁大小為10第一頁

#查詢1SELECT `id` FROM `table` WHERE `node` = 2 ORDER BY `id` ASC LIMIT 10

假設(shè)查詢1的第10條數(shù)據(jù)的id是10,第1條數(shù)據(jù)的id是1那么查詢第二頁的SQL如下

SELECT `id` FROM `table` WHERE `node` = 2 AND `id`>10 ORDER BY `id` ASCLIMIT 10

這樣你可以發(fā)現(xiàn)響應(yīng)速度超快。不過有個問題是無法前往指定頁數(shù),不過從我目前的實際情況來看,這個沒有影響,有個搜索功能就可以彌補(bǔ)

回答2:

優(yōu)化分頁的問題其實就是offset的問題,尤其是偏移量大的時候。mysql會掃描大量不需要的行然后拋棄,只取limit的數(shù)量。所以一般最好不要用offset。解決方法有1.可以先使用索引覆蓋掃描,而不是查詢所有的列,然后做關(guān)聯(lián)操作返回相關(guān)的列。這個方法可以叫做“延遲關(guān)聯(lián)”2.可以把limit查詢轉(zhuǎn)換成已知位置的查詢,變成between XXX and XXX 。3.可以記錄上次查詢的數(shù)據(jù)的位置,下一次查詢直接從該位置開始掃描,樓上就是用的這種辦法。

鑒于問題好像只查詢id一個字段。1方法用不到,2,3可以考慮。

相關(guān)文章:
主站蜘蛛池模板: 日韩中文一区二区三区 | 国产精品v | 午夜免费精品视频 | 久久精品亚洲国产奇米99 | 日韩欧美理论片 | 日韩一区二区在线视频 | 欧美网站一区二区 | 激情五月婷婷综合 | 久久91| 自拍中文字幕 | 在线看无码的免费网站 | 久久久久无码国产精品一区 | 欧美一区二区三区在线 | 欧美91| 天堂三级 | 精品国产乱码久久久久久果冻传媒 | 欧美一区二区三区在线观看 | 亚洲欧洲日韩 | 黄色免费三级 | 国产精品久久久久久av公交车 | 久久av一区二区三区 | 中文字幕在线观 | 日韩精品在线一区 | 在线播放国产一区二区三区 | 精品久久久久久久久久久 | 免费在线一区二区 | 日韩精品一区二区三区在线 | 国产精品久久久久久久久久 | 男女又爽又黄视频 | 国产又爽又黄的视频 | 91精品中文字幕一区二区三区 | 国产在线精品免费 | 91久色| 日韩免费高清视频 | 91免费看片 | 欧美一区视频 | 久久久综合网 | 天天操 夜夜操 | 欧洲一级视频 | 操操操日日日 | 精品欧美一区二区三区免费观看 |