亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ddbs簡介

發布時間:2020-04-27 07:33:50 來源:網絡 閱讀:1125 作者:于金冶 欄目:數據庫

    本文從個人項目經歷來說一點自己對ddbs的理解,包括催生ddbs的原因ddbs的基本原理,其解決了哪些問題,還有哪些不足。歡迎大家討論、斧正。

    業務規模較小時,使用單機mysql作存儲。但伴隨業務發展,存儲容量和并發能力會有瓶頸

    首先,假設單機的硬盤為1.8T,也可以掛更大容量硬盤,但仍有限。

    其次,單機的讀寫并發能力有限,假設峰值寫入qps1000,峰值讀取qps3000,網卡對讀取時流量也有要求,單次訪問的讀取量不應過大。

    單機的鏈接數也有限。


    那么,當使用單機mysql的業務發展,受到以上瓶頸時,一般的思路會是什么呢?一臺機器不行,用兩臺呢,再不行,擴展更多臺。


    一臺擴展為兩臺,磁盤容量擴大了,通過分表,將表打散在不同機器上,共同承擔寫入任務,并發也提高了,感覺這個思路是對的。


    那么在這個過程中,我們需要做什么?

    業務發展到單機無法承受,即使在單機上,很多表應該也做過分表了。一般會根據業務選擇分表鍵。單個表的大小mysql也有一定要求,一般存儲量不大于1G,單條記錄小一些,一般不超過1k,條數一般不超過1000萬條,最多不超過5000萬條,否則表的使用和維護效率都很低。假設業務已經做了足夠多的分表,滿足三年的數據增長需要,第一年過后,每個分表的條數達到200萬條,整機存儲容量使用了一半,此時我們想拆分為兩臺機器。

    此時我們可以將原機器上部分表數據同步到新機器上,并在model層抽象一個路由層,將對數據庫的操作發到不同的機器上,上層業務仍可以認為在使用單機。此時可以將原機器上不歸屬自己管理范圍的表刪除,騰出空間。

    一臺變成了兩臺,向分布式走了一步。此時存儲容量和并發都提高了,由路由層管理兩臺機器。如果兩臺或今后的多臺機器,并發數高于路由層處理能力怎么辦?那還要把路由層機器也擴一下,把路由規則都寫進去,大家按一個格則辦事。

    

    經過上面的一番折騰,數據庫機器水平擴展,解決了單機存在的一些問題。在這個擴展的過程中,是否會對業務產生中斷影響呢?

    會有一點影響。至少在路由層改路由表時,會中斷數據庫的寫入,讀取此時可以不中斷。


    ddbs中,使用到的多臺機器,都叫做分片。分片提高了系統存儲容量和并發能力,引入分片,也是系統的復雜度提高了,需要引入路由層機器,路由機器也可能需要擴展,復雜操作,還需要添加更多邏輯功能。但至少可以可業務邏輯區分開,業務可以把ddbs當做單機在使用。


    那么ddbs有哪些不足呢?

    ddbs還是要基于分表、分片實現的。那么對數據庫的任何操作,首要條件是需要指明操作的分表鍵。沒有這個維度的準確值,就不能對數據庫操作,當然除非是備用庫,那你隨便掃表,因為備用庫可以轉為冗余安全,不走線上流量,可以做統計任務。

    單指明分表鍵還不行,還要注意操作的數據可能會分布在不同分表、不同分片中,這樣的操作會引發ddbs產生大量并發操作,業務的一個請求就會占用多個機器多個鏈接,使ddbs得并發能力大打折扣。比如‘where 分表鍵 in ()’操作,這種操作要慎重,in中個數不可太多。

     分表鍵最好選用×××,字符串型,可能hash后分配不均,表大小不均衡。


    事物操作在ddbs中的實現,非常耗費系統性能。事務類操作需要路由控制層控制整個操作過程,期中可能涉及多個分片,多個不同的表的操作,對系統整體可用性要求高。


    

    

    


    



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宣汉县| 遵义县| 鄂伦春自治旗| 太谷县| 黔江区| 盐山县| 九寨沟县| 韶山市| 河曲县| 堆龙德庆县| 清水河县| 西青区| 双柏县| 宣武区| 寿宁县| 南投市| 襄垣县| 蒙城县| 巨野县| 常熟市| 台州市| 健康| 噶尔县| 方城县| 沽源县| 祁连县| 阳朔县| 岢岚县| 西安市| 宝应县| 象州县| 辉南县| 常宁市| 广南县| 洪泽县| 湖北省| 西乌| 遂昌县| 湖南省| 黑水县| 金秀|