91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

如何進行MySQL Sharding可擴展設計

發布時間:2021-10-18 09:43:22 來源:億速云 閱讀:149 作者:柒染 欄目:數據庫

今天就跟大家聊聊有關如何進行MySQL Sharding可擴展設計,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

一.背景
  我們知道,當數據庫中的數據量越來越大時,不論是讀還是寫,壓力都會變得越來越大。采用MySQL Replication多master多slave方案,在上層做負載均衡,雖然能夠一定程度上緩解壓力。但是當一張表中的數據變得非常龐大時,壓力還是 非常大的。試想,如果一張表中的數據量達到了千萬甚至上億級別的時候,不管是建索引,優化緩存等,都會面臨巨大的性能壓力。
  二.定義
  數據sharding,也稱作數據切分,或分區。是指通過某種條件,把同一個數據庫中的數據分散到多個數據庫或多臺機器上,以減小單臺機器壓力。
  三.分類
  數據分區根據切分規則,可以分為兩類:
  (1)垂直分區:以表為單位,把不同的表分散到不同的數據庫或主機上。特點是規則簡單,實施方便,適合業務之間耦合度低的系統。
  (2)水平分區:以行為單位,將同一個表中的數據按照某種條件拆分到不同的數據庫或主機上。特點是相對復雜,適合單表巨大的系統。
  在實際情況中,有的時候把垂直分區和水平分區結合使用。
  四.示意圖
  下面通過幾張圖來給出上面三種分區方式的直觀效果。
  (1)垂直分區
  

  (2)水平分區
  

  (3)聯合分區
  

  五.注意事項
  下面我們所說的分區,主要是指水平分區。
  (1)在實施分區前,我們可以查看所安裝版本的mysql是否支持分區:

 mysql> show variables like "%partition%";

  如果支持則會顯示:
        +-------------------+-------+
        | Variable_name     | Value |
        +-------------------+-------+
        | have_partitioning | YES   |
        +-------------------+-------+
  (2)分區適用于一個表的所有數據和索引;不能只對數據分區而不對索引分區,反之亦然,同時也不能只對表的一部分進行分區。
  (3)分區類型:
  RANGE 分區:基于屬于一個給定連續區間的列值,把多行分配給分區。
  LIST 分區:類似于按RANGE分區,區別在于LIST分區是基于列值匹配一個離散值集合中的某個值來進行選擇。
  HASH分區:基于用戶定義的表達式的返回值來進行選擇的分區,該表達式使用將要插入到表中的這些行的列值進行計算。
  KEY 分區:類似于按HASH分區,區別在于KEY分區只支持計算一列或多列,且MySQL 服務器提供其自身的哈希函數。必須有一列或多列包含整數值。
  無論使用何種類型的分區,分區總是在創建時就自動的順序編號,且從0開始記錄。當有一新行插入到一個分區表中時,就是使用這些分區編號來識別正確的分區。
  (4) MySQL提供了許多修改分區表的方式。添加、刪除、重新定義、合并或拆分已經存在的分區是可能的。所有這些操作都可以通過使用ALTER TABLE 命令的分區擴展來實現.
  (5) 可以對已經存在的表進行分區,直接使用alter table命令即可。

看完上述內容,你們對如何進行MySQL Sharding可擴展設計有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

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

AI

鹿邑县| 静海县| 龙泉市| 大宁县| 玉树县| 凤城市| 汾阳市| 青龙| 宁远县| 昌邑市| 新乡县| 友谊县| 永平县| 三明市| 泽普县| 桃源县| 汉沽区| 宣恩县| 雷山县| 和顺县| 平和县| 龙里县| 安顺市| 永善县| 大化| 涞源县| 根河市| 克东县| 缙云县| 平阳县| 北碚区| 东兴市| 吴川市| 永定县| 扎赉特旗| 温泉县| 上蔡县| 蚌埠市| 田东县| 阿城市| 什邡市|