自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

分庫分表實戰(zhàn):幸福的煩惱—流量大爆發(fā)啦!

數(shù)據(jù)庫 其他數(shù)據(jù)庫
對于數(shù)據(jù)庫中的訂單表而言,如果按照一天2萬個訂單數(shù)據(jù)量計算,一年也就七八百萬的訂單量,還是可以輕松hold住的。

到現(xiàn)在為止,我們已經(jīng)對訂單系統(tǒng)核心接口業(yè)務(wù)流程有了一定的了解,此時我們可以接一些簡單的需求做了。

同時這個時候,也會有對應(yīng)的產(chǎn)品經(jīng)理來和我們對接需求,一般3個月左右,我們處理單系統(tǒng)的日常需求就輕車熟路了。

可能在剛?cè)肼毜臅r候,這家初創(chuàng)型互聯(lián)網(wǎng)公司累積的用戶量也就10萬,每天活躍2萬,日訂單2萬,如下圖:

分庫分表實戰(zhàn)(第3期):幸福的煩惱—流量大爆發(fā)啦

對于數(shù)據(jù)庫中的訂單表而言,如果按照一天2萬個訂單數(shù)據(jù)量計算,一年也就七八百萬的訂單量,還是可以輕松hold住的。

行業(yè)風口,用戶量突增帶來的問題

但是,可能若我們就是這么幸運,剛好遇到了移動互聯(lián)網(wǎng)快速發(fā)展的幾年。

這個時候,外賣APP的用戶量迅速增長到了100萬,日活用戶20萬,日訂單20萬,訂單單表也從300萬快速達到了2000萬,如下圖:

分庫分表實戰(zhàn)(第3期):幸福的煩惱—流量大爆發(fā)啦

在這3個月的過程中,我們除了做日常的需求外,還要支持解決線上問題,所以經(jīng)常會去查詢訂單表。

在查詢訂單表數(shù)據(jù)的時候,我們會發(fā)現(xiàn)隨著訂單數(shù)據(jù)的增多,訂單查詢sql相應(yīng)的也會變得越來越慢,比如,你剛?cè)肼毜臅r候單表可能就300萬數(shù)據(jù)量,查詢只需要20ms的樣子,但是現(xiàn)在,單表增長到2000萬,不過查詢一般也都穩(wěn)定在200ms以下。

某一天,當我們正在沉浸式地寫著代碼時,leader突然找到我們說:“昨天晚上小猛上了一個需求,然后今天突然發(fā)現(xiàn)我們訂單sql查詢超過了3s,肯定是昨晚上線的sql有問題,現(xiàn)在我們單表才2000萬數(shù)據(jù),MySQL是可以輕松hold住的,小猛今天不在公司,你幫忙排查下問題,然后優(yōu)化下sql?!?/p>

可以想象一下這樣一個場景,當我們打開一個外賣app想點個外賣,想起來上周吃的某個外賣還不錯,就想看看自己點的是哪個商家的外賣,然后滿心歡喜的想要點開自己的歷史訂單列表。

結(jié)果等了3s訂單列表都還沒加載出來,也許作為干飯人的我們有著強大的毅力,最后終于等到訂單列表加載出來了,心滿意足選好菜品下單。

但此時我們的腦海中是不是會出現(xiàn)那個bgm:“完了,芭比Q了”,所以這樣的查詢速度是萬萬不能接受的,因為體驗極差。

回過神來的我們,聽完leader說的話后就接下了這個任務(wù),馬上開始著手優(yōu)化sql了,但是下一秒就遇到一個新的難題,那就是我們根本沒優(yōu)化過sql,就連MySQL的一次查詢會經(jīng)歷過哪些過程,你都不是很清楚,更不用提要從哪里開始優(yōu)化了。

而sql優(yōu)化的第一步,我們得要先了解一下MySQL一次完整查詢會經(jīng)歷哪些過程,然后再針對性的優(yōu)化,MySQL一次完整的查詢的過程呢,我們在下一篇文章會詳細的分析,大家不要著急,這里我們繼續(xù)分析下現(xiàn)狀。

偶爾的流量爆發(fā),問題被進一步放大

根據(jù)剛才的分析,在上百萬規(guī)模的一個用戶群體下,數(shù)據(jù)庫中一年的訂單數(shù)據(jù)量搞不好都要上億了,一旦訂單表中的數(shù)據(jù)達到這樣的一個量級之后,后續(xù)訂單sql的性能就開始顯著下降了。

但是,容易被我們忽視的一個場景就是,流量可能偶爾會爆發(fā)一下,然后sql查詢較慢的問題會被進一步的放大,那么哪些場景會導致流量在短時間內(nèi)爆發(fā)呢?

其實這種場景就比較多了,比如某一天,我們的外賣APP做了一些促銷活動,或者是某一天競對的APP不幸掛掉了(作為良性競爭倡導者的我們不應(yīng)該有這種想法,但是萬一呢,是吧?),這些場景下,大量的流量就會在短時間里引爆我們外賣APP。

好的,那我們這里假設(shè)就是競對的外賣APP出了一些故障吧,比如競對的評價系統(tǒng)掛掉了,導致店鋪的評價顯示不出來,那這就嚴重了,因為部分用戶的訂餐習慣,是在點外賣前都會先看下店鋪的評價。

結(jié)果由于競對外賣APP的評價系統(tǒng)掛了,導致店鋪的評價顯示不出來,那這些用戶可能就都會跑到我們的外賣APP來下單,這個時候,我們外賣APP的流量就會瞬間增大好幾倍。

本來這個時候,我們訂單表一次查詢差不多都需要3s了,現(xiàn)在又發(fā)生了流量突增的情況,那就會導致已經(jīng)存在的問題被進一步的放大,比如一次訂單查詢會直接變?yōu)?s,這都是有可能的。

所以,如果我們不對這種場景進行優(yōu)化,就會失去一些用戶,因為我們自己的外賣APP此時也很卡的話,我們就可能會錯過一次“天賜良機”。

結(jié)束語

不過,對于這種千萬級數(shù)據(jù)的優(yōu)化大家也不用著急,因為接下來,我們會帶著大家一步步分析這些問題背后的原因,并且會將對應(yīng)的解決方案進行落地,所以大家一定要好好學習,畢竟機會從來都是留給有準備的人的。?

責任編輯:武曉燕 來源: 今日頭條
相關(guān)推薦

2022-10-11 17:51:49

分庫分表數(shù)據(jù)庫

2022-10-10 17:37:59

分庫分表訂單業(yè)務(wù)

2020-07-30 17:59:34

分庫分表SQL數(shù)據(jù)庫

2022-06-30 07:34:46

分庫分表外賣訂單系統(tǒng)

2019-11-12 09:54:20

分庫分表數(shù)據(jù)

2021-09-08 09:48:39

數(shù)據(jù)庫工具技術(shù)

2024-07-26 00:16:11

2020-11-17 08:08:34

分庫分表

2022-10-13 17:43:10

MySQL存放數(shù)據(jù)

2022-07-11 08:16:47

NewSQL關(guān)系數(shù)據(jù)庫系統(tǒng)

2019-02-01 08:28:42

春晚紅包百度紅包流量

2021-08-31 20:21:11

VitessMySQL分庫

2023-08-11 08:59:49

分庫分表數(shù)據(jù)數(shù)據(jù)庫

2020-11-18 09:39:02

MySQL數(shù)據(jù)庫SQL

2022-07-03 19:01:19

磁盤IOMySQL

2022-01-21 07:56:39

MySQL索引數(shù)據(jù)

2022-01-28 08:59:59

分庫分表數(shù)據(jù)

2022-10-09 18:14:31

訂單系統(tǒng)分庫分表

2022-07-08 08:57:36

數(shù)據(jù)優(yōu)化垂直拆分數(shù)據(jù)庫

2020-07-28 09:04:09

NewSQL分庫分表
點贊
收藏

51CTO技術(shù)棧公眾號