真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網站制作重慶分公司

如何進行MySQLSharding可擴展設計

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

創(chuàng)新互聯(lián)建站專注于融水企業(yè)網站建設,響應式網站,成都商城網站開發(fā)。融水網站建設公司,為融水等地區(qū)提供建站服務。全流程按需搭建網站,專業(yè)設計,全程項目跟蹤,創(chuàng)新互聯(lián)建站專業(yè)和態(tài)度為您提供的服務

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

(2)水平分區(qū)

(3)聯(lián)合分區(qū)

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

 mysql> show variables like "%partition%";

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

看完上述內容,你們對如何進行MySQL Sharding可擴展設計有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。


分享標題:如何進行MySQLSharding可擴展設計
URL鏈接:http://weahome.cn/article/jhpijc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部