欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Mysql分片,大數(shù)據(jù)量時擴容解決方案

 更新時間:2024年06月01日 15:21:03   作者:FYHannnnnn  
這篇文章主要介紹了Mysql分片,大數(shù)據(jù)量時擴容解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

分片概念

分片(Sharding)就是用來確定數(shù)據(jù)在多臺存儲設備上分布的技術。

Shard這個詞的意思是“碎片”,如 果將一個數(shù)據(jù)庫當作一塊大玻璃,將這塊玻璃打碎,那么每一小塊都稱為數(shù)據(jù)庫的碎片(Database Sharding)。

將一個數(shù)據(jù)庫打碎成多個的過程就叫做分片,分片是屬于橫向擴展方案。

分片與分表的區(qū)別

分片:表示分配過程,是一個邏輯上概念,表示如何實現(xiàn)。

分庫分表:表示分配結(jié)果,是一個物理上概念,表示最終實現(xiàn)的結(jié)果

分片策略

基于范圍分片

根據(jù)特定的字段進行拆分,比如ID0-100到 Cluster A節(jié)點中,100-200的到Cluster B節(jié)點中...

  • 優(yōu)點:新的數(shù)據(jù)可以落在新的存儲節(jié)點上,如果集群擴容,數(shù)據(jù)無需遷移。
  • 缺點:熱點數(shù)據(jù)分部不均勻則會導致機器負荷程度的不均勻,會浪費資源也會導致部分機器過載。

哈希取模分片(離散分片)

根據(jù)Hash算法取模對應一些機器編號進行入庫。

  • 優(yōu)點:數(shù)據(jù)分配比較均勻,不容易出現(xiàn)冷熱不均,負荷不均的情況。
  • 缺點:比較均勻,但是在擴容時會產(chǎn)生大量的數(shù)據(jù)遷移(因為Hash算法取模要整體重新計算),比如從n臺設備擴容到n+1,絕大部分數(shù)據(jù)需要重新分配和 遷移。

一致性哈希分片

相比較傳統(tǒng)的Hash算法,通過環(huán)的方式在添加節(jié)點(擴容)或者刪除節(jié)點時,只對增加節(jié)點的單個環(huán)上進行添加,則無須進行大面積的數(shù)據(jù)遷移。

在數(shù)據(jù)庫容量有限的情況下,分片,分庫,分表也會達到瓶頸,而這時候的擴容方式則需要去橫向增加節(jié)點擴容處理。

一,初期方案(停機擴容)

停機擴容,關閉服務不符合現(xiàn)階段高可用的價值觀,并且如果有問題沒有及時測試出來啟動了服務,運行后發(fā)現(xiàn)問題,數(shù)據(jù)會丟失一部分,難以回滾。

該方案雖然簡單但只適合小型網(wǎng)站或者對高可用要求不高的程序,或是測試上線階段。

二,平滑擴容(上線運行之后)

平滑擴容也稱之為成倍擴容,例如從兩個節(jié)點擴到四個節(jié)點,通過雙主配置雙寫進行數(shù)據(jù)同步。

雙主雙寫之后進行同步,在可容忍的延遲下,保證數(shù)據(jù)的同步完成。

(因為高可用要求高的程序下,隨時都會存在寫的數(shù)據(jù)錄入,所以會有延遲情況)

同步完成后,則取消掉雙主同步,重啟即可。

平滑擴容雖然做到了高可用的要求,但是配置程序很復雜、配置雙主同步、雙主雙寫、檢測數(shù)據(jù)同步等,且后期數(shù)據(jù)庫擴容,因為是成倍擴容,代價會不斷變大。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Mysql NULL導致的神坑

    Mysql NULL導致的神坑

    這篇文章主要介紹了Mysql NULL導致的神坑,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09
  • MySQL 5.0.16亂碼問題的解決方法

    MySQL 5.0.16亂碼問題的解決方法

    這篇文章主要介紹了MySQL 5.0.16亂碼問題的解決方法,需要的朋友可以參考下
    2015-10-10
  • MySql數(shù)據(jù)庫基礎之子查詢詳解

    MySql數(shù)據(jù)庫基礎之子查詢詳解

    所謂子查詢是指在一個查詢中嵌套了其他的若干查詢,即在一個SELECT查詢語句的WHERE或FROM子句中包含另一個SELECT查詢語句,下面這篇文章主要給大家介紹了關于MySQL子查詢的相關資料,需要的朋友可以參考下
    2022-09-09
  • MySQL數(shù)據(jù)查看SELECT條件大于?小于(小白入門篇)

    MySQL數(shù)據(jù)查看SELECT條件大于?小于(小白入門篇)

    這篇文章主要為大家介紹了MySQL數(shù)據(jù)查看SELECT條件大于和小于的語句學習,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05
  • MySQL中l(wèi)imit語法及用法小結(jié)

    MySQL中l(wèi)imit語法及用法小結(jié)

    LIMIT 是 MySQL 中的一個特殊關鍵字,用于指定查詢結(jié)果從哪條記錄開始顯示,一共顯示多少條記錄,本文重點介紹MySQL中l(wèi)imit語法及用法小結(jié),感興趣的朋友一起看看吧
    2023-10-10
  • mysql中的find_in_set字符串查找函數(shù)解析

    mysql中的find_in_set字符串查找函數(shù)解析

    這篇文章主要介紹了mysql中的find_in_set字符串查找函數(shù),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • mysql使用Haversine 公式和ST_Distance_Sphere 函數(shù)實現(xiàn)附近的人功能

    mysql使用Haversine 公式和ST_Distance_Sphere 函數(shù)實現(xiàn)附近的人功能

    使用 MySQL 來實現(xiàn)“附近的人”功能,可以通過Haversine 公式和ST_Distance_Sphere 函數(shù)兩種方式來實現(xiàn),這篇文章主要介紹了mysql實現(xiàn)附近的人功能,需要的朋友可以參考下
    2023-08-08
  • mysql 5.7以上版本下載及安裝圖文教程

    mysql 5.7以上版本下載及安裝圖文教程

    這篇文章主要介紹了mysql 5.7以上版本下載及安裝圖文教程,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-02-02
  • 淺談MySQL中不等號索引問題

    淺談MySQL中不等號索引問題

    本文主要介紹了淺談MySQL中不等號索引問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-03-03
  • 如何添加一個mysql用戶并給予權(quán)限詳解

    如何添加一個mysql用戶并給予權(quán)限詳解

    在很多時候我們并不會直接利用mysql的root用戶進行項目的開發(fā),一般我們都會創(chuàng)建一個具有部分權(quán)限的用戶,下面這篇文章主要給大家介紹了關于如何添加一個mysql用戶并給予權(quán)限的相關資料,需要的朋友可以參考下
    2023-03-03

最新評論