select count(*) from reply_0004 where thread_id = 5616385 and deleted = 0; +———-+ | count(*) | +———-+ " />
  • <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當前位置: 首頁 - 科技 - 知識百科 - 正文

    在大數據情況下MySQL的一種簡單分頁優化方法_MySQL

    來源:懂視網 責編:小采 時間:2020-11-09 19:48:16
    文檔

    在大數據情況下MySQL的一種簡單分頁優化方法_MySQL

    在大數據情況下MySQL的一種簡單分頁優化方法_MySQL:通常應用需要對表中的數據進行翻頁,如果數據量很大,往往會帶來性能上的問題: root@sns 07:16:25>select count(*) from reply_0004 where thread_id = 5616385 and deleted = 0; +———-+ | count(*) | +———-+
    推薦度:
    導讀在大數據情況下MySQL的一種簡單分頁優化方法_MySQL:通常應用需要對表中的數據進行翻頁,如果數據量很大,往往會帶來性能上的問題: root@sns 07:16:25>select count(*) from reply_0004 where thread_id = 5616385 and deleted = 0; +———-+ | count(*) | +———-+

    通常應用需要對表中的數據進行翻頁,如果數據量很大,往往會帶來性能上的問題:

    root@sns 07:16:25>select count(*) from reply_0004 where thread_id = 5616385 and deleted = 0;
    +———-+
    | count(*) |
    +———-+
    | 1236795 |
    +———-+
    1 row in set (0.44 sec)
    root@sns 07:16:30>select id
    from reply_0004 where thread_id = 5616385 and deleted = 0
    order by id asc limit 1236785, 10 ;
    +———–+
    | id |
    +———–+
    | 162436798 |
    | 162438180 |
    | 162440102 |
    | 162442044 |
    | 162479222 |
    | 162479598 |
    | 162514705 |
    | 162832588 |
    | 162863394 |
    | 162899685 |
    +———–+
    10 rows in set (1.32 sec)
    

    索引:threa_id+deleted+id(gmt_Create)
    10 rows in set (1.32 sec)
    這兩條sql是為查詢最后一頁的翻頁sql查詢用的。由于一次翻頁往往只需要查詢較小的數據,如10條,但需要向后掃描大量的數據,也就是越往后的翻頁查詢,掃描的數據量會越多,查詢的速度也就越來越慢。
    由于查詢的數據量大小是固定的,如果查詢速度不受翻頁的頁數影響,或者影響最低,那么這樣是最佳的效果了(查詢最后最幾頁的速度和開始幾頁的速度一致)。
    在翻頁的時候,往往需要對其中的某個字段做排序(這個字段在索引中),升序排序。那么可不可以利用索引的有序性來解決上面遇到的問題喃,答案是肯定的。比如有10000條數據需要做分頁,那么前5000條做asc排序,后5000條desc排序,在limit startnum,pagesize參數中作出相應的調整。
    但是這無疑給應用程序帶來復雜,這條sql是用于論壇回復帖子的sql,往往用戶在看帖子的時候,一般都是查看前幾頁和最后幾頁,那么在翻頁的時候最后幾頁的翻頁查詢采用desc的方式來實現翻頁,這樣就可以較好的提高性能:

    root@snsgroup 07:16:49>select * from (select id
    
    -> from group_thread_reply_0004 where thread_id = 5616385 and deleted = 0
    
    -> order by id desc limit 0, 10)t order by t.id asc;
    
    +———–+
    
    | id |
    
    +———–+
    
    | 162436798 |
    
    | 162438180 |
    
    | 162440102 |
    
    | 162442044 |
    
    | 162479222 |
    
    | 162479598 |
    
    | 162514705 |
    
    | 162832588 |
    
    | 162863394 |
    
    | 162899685 |
    
    +———–+
    
    10 rows in set (0.87 sec)
    
    

    可以看到性能提升了50%以上。

    聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    在大數據情況下MySQL的一種簡單分頁優化方法_MySQL

    在大數據情況下MySQL的一種簡單分頁優化方法_MySQL:通常應用需要對表中的數據進行翻頁,如果數據量很大,往往會帶來性能上的問題: root@sns 07:16:25>select count(*) from reply_0004 where thread_id = 5616385 and deleted = 0; +———-+ | count(*) | +———-+
    推薦度:
    標簽: 方法 數據 的方法
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 亚洲精品国产精品乱码在线观看| mm1313亚洲国产精品无码试看| 欧美精品黑人粗大视频| 8AV国产精品爽爽ⅴa在线观看| 欧美激情精品久久久久久久九九九 | 久久国产乱子精品免费女| 亚洲AV无码成人精品区天堂| 欧美国产成人久久精品| 国产精品无打码在线播放| 女人香蕉久久**毛片精品| 东京热TOKYO综合久久精品| 亚洲AV无码国产精品色午友在线| 日韩精品无码人妻一区二区三区| 91无码人妻精品一区二区三区L| 99RE6热在线精品视频观看| 日韩精品无码一区二区三区不卡| 亚洲av午夜国产精品无码中文字 | 精品性影院一区二区三区内射| 午夜精品久久久内射近拍高清| 国产亚洲精品AA片在线观看不加载| 久久免费精品视频| 欧美巨大黑人精品videos| 国产成人精品免费视| 国产精品人成在线播放新网站 | 久久人搡人人玩人妻精品首页| 国产精品内射久久久久欢欢| 中文精品久久久久国产网址 | 亚洲国产精品人久久| 久久96国产精品久久久| 国产精品久久亚洲不卡动漫| 国产成人精品无码播放| 精品人伦一区二区三区潘金莲| 三上悠亚久久精品| 欧美日韩人妻精品一区二区在线| 亚洲国产精品无码久久一区二区 | 国产精品自在线拍国产第一页 | 国内精品久久久久久久久| 国产在线精品一区二区高清不卡 | 国产一区二区精品尤物| 精品亚洲成α人无码成α在线观看 | 无码精品国产VA在线观看|