您好,登錄后才能下訂單哦!
這篇文章主要講解了“Mysql分庫分表的概念”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Mysql分庫分表的概念”吧!
范圍拆分:比如訂單表通過id拆分,id在1到100000在服務器a的order數據庫,id在100001到200000存放在服務器b的order數據庫,以此類推。
地理拆分:將訂單表按照不同地區將表中的數據拆分到不同服務器的order數據庫中存儲。比如可以按照省份來進行拆分。
取模拆分:取模就是剛才水平分表講到的比如有三個訂單表,可以將id對3取余,但是區別在于水平分庫分表是將同樣的數據庫和數據表存放在不同機器,所以說可以有效緩解單機瓶頸問題。
時間拆分:根據時間來拆分表中的數據,可以將表中創建時間超過一年的數據拆分到其他數據庫的order數據庫存儲,原表中只保留被查詢概率較高的數據,而這部分數據往往都是近期才創建的,所以可以通過時間拆分實現冷熱數據分離。
分區
分區是什么意思呢?分區實際上是指同一個數據表中不同行的數據記錄到不同的分區中,每個分區都有一個.idb文件,所以說分區可以幫助我們將一個數據表拆分成幾個更小的部分。Mysql只支持局部索引分區不支持全局分區,mysql每一個分區既保存了數據,又存放了索引。MySQL分區主要分為以下幾種:
RANGE分區:RANGE分區主要用于日期列的分區,是基于連續區間的列值來進行分區的。RANGE分區也是最常用的分區方式。
LIST分區:LIST分區列的值是散列的,也正是由于分區列的值是散列的所以需要手動定義分區列的值。
HASH分區:HASH分區就是通過自定義算法將數據均勻分布到不同分區,保證所有分區中數據大致相同。HASH分區只支持整數分區。
KEY分區:key分區使用數據庫自帶函數進行分區。KEY分區可支持BLOB和TEXT列之外的數據列分區。
分區的優點
與數據存放在單個磁盤相比,可以存儲更多的數據。
對于那些已經失效的數據,通常可以通過刪除對應的分區,來實現刪除數據,這樣比delete效率更高。
一些查詢可以得到極大的優化,滿足一個給定WHERE語句的數據可以只保存在一個分區內,這樣在查找時就不用查找其他剩余的分區。
涉及聚合函數的查詢,可以進行并行處理。意味著聚合函數查詢可以在每個分區上同時進行,最終結果只需通過總計所有分區得到的結果。
感謝各位的閱讀,以上就是“Mysql分庫分表的概念”的內容了,經過本文的學習后,相信大家對Mysql分庫分表的概念這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。