一、分區(qū)概念?
分區(qū)允許根據(jù)指定的規(guī)則,跨文件系統(tǒng)分配單個表的多個部分。表的不同部分在不同的位置被存儲為單獨的表。MySQL從5.1.3開始支持Partition。
分區(qū)和手動分表對比
手動分表?-----------------??分區(qū)
多張數(shù)據(jù)表------------一張數(shù)據(jù)表
重復(fù)數(shù)據(jù)的風(fēng)險??------------沒有數(shù)據(jù)重復(fù)的風(fēng)險
寫入多張表------------寫入一張表
沒有統(tǒng)一的約束限制------------強制的約束限制
?
MySQL支持RANGE,LIST,HASH,KEY分區(qū)類型,其中以RANGE最為常用:
Range(范圍)–?這種模式允許將數(shù)據(jù)劃分不同范圍。例如可以將一個表通過年份劃分成若干個分區(qū)。
List(預(yù)定義列表)–?這種模式允許系統(tǒng)通過預(yù)定義的列表的值來對數(shù)據(jù)進行分割。
Hash(哈希)–?這中模式允許通過對表的一個或多個列的Hash?Key進行計算,最后通過這個Hash碼不同數(shù)值對應(yīng)的數(shù)據(jù)區(qū)域進行分區(qū)。例如可以建立一個對表主鍵進行分區(qū)的表。
Key(鍵值)-?上面Hash模式的一種延伸,這里的Hash?Key是MySQL系統(tǒng)產(chǎn)生的。
Composite(復(fù)合模式)?–?以上模式的組合使用。比如,在初始化已經(jīng)進行了Range范圍分區(qū)的表上,我們可以對其中一個分區(qū)再進行hash哈希分區(qū)?!?br>?
二、分區(qū)能做什么
邏輯數(shù)據(jù)分割
提高單一的寫和讀應(yīng)用速度
提高分區(qū)范圍讀查詢的速度
分割數(shù)據(jù)能夠有多個不同的物理文件路徑
高效的保存歷史數(shù)據(jù)
一個表上的約束檢查
不同的主從服務(wù)器分區(qū)策略,例如master按Hash分區(qū),slave按range分區(qū)
Tips:?如果需要子分區(qū)的話,一般只針對range和list進行子分區(qū),而子分區(qū)采用的模式通常為hash或者key
1.shell/批處理代碼
#這里修改成分區(qū)表 ALTER TABLE sign PARTITION by RANGE(id)( PARTITION sign_p0 VALUES less than (10000000), PARTITION sign_p1 VALUES less than (20000000), PARTITION sign_p2 VALUES less than (30000000), PARTITION sign_p3 VALUES less than (40000000), PARTITION sign_p4 VALUES less than (50000000), PARTITION sign_p5 VALUES less than (60000000), PARTITION sign_p6 VALUES less than (70000000), PARTITION sign_p7 VALUES less than (80000000), PARTITION sign_p8 VALUES less than (90000000), PARTITION sign_p9 VALUES less than MAXVALUE ); #如果創(chuàng)建時分區(qū)表 CREATE TABLE sign(表結(jié)構(gòu))engine=MyISAM PARTITION BY RANGE(id)( PARTITION sign_p0 VALUES less than (10000000), PARTITION sign_p1 VALUES less than (20000000), PARTITION sign_p2 VALUES less than (30000000), PARTITION sign_p3 VALUES less than (40000000), PARTITION sign_p4 VALUES less than (50000000), PARTITION sign_p5 VALUES less than (60000000), PARTITION sign_p6 VALUES less than (70000000), PARTITION sign_p7 VALUES less than (80000000), PARTITION sign_p8 VALUES less than (90000000), PARTITION sign_p9 VALUES less than MAXVALUE );
2.截圖
3.批處理代碼
#上圖所示 #通常的PC機,一億條記錄,修改時耗時接近12分鐘; #分區(qū)前,大概2.5G多數(shù)據(jù),分區(qū)后有接近3.9G

熱AI工具

Undress AI Tool
免費脫衣服圖片

Undresser.AI Undress
人工智能驅(qū)動的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover
用于從照片中去除衣服的在線人工智能工具。

Clothoff.io
AI脫衣機

Video Face Swap
使用我們完全免費的人工智能換臉工具輕松在任何視頻中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的代碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
功能強大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級代碼編輯軟件(SublimeText3)