select count(*) from reply_0004 where thread_id = 5616385 and deleted = 0; +———-+ | count(*) | +———-+ " />

做爰高潮a片〈毛片〉,尤物av天堂一区二区在线观看,一本久久A久久精品VR综合,添女人荫蒂全部过程av

最新文章專題視頻專題問答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
主站蜘蛛池模板: 博白县| 长乐市| 搜索| 静乐县| 社会| 阳泉市| 喀什市| 肥乡县| 临沂市| 准格尔旗| 藁城市| 浠水县| 嫩江县| 都兰县| 濮阳县| 龙江县| 油尖旺区| 盐津县| 柘荣县| 攀枝花市| 青田县| 高邮市| 乌兰察布市| 桂阳县| 南城县| 定安县| 松滋市| 禄丰县| 固镇县| 祁东县| 凉山| 龙岩市| 新沂市| 大英县| 巴南区| 岑巩县| 洛川县| 武城县| 衡东县| 南陵县| 武冈市|