一、分區(qū)概念?
分區(qū)允許根據(jù)指定的規(guī)則,跨文件系統(tǒng)分配單個表的多個部分。表的不同部分在不同的位置被存儲為單獨的表。MySQL從5.1.3開始支持Partition。
分區(qū)和手動分表對比
手動分表?-----------------??分區(qū)
多張數(shù)據(jù)表------------一張數(shù)據(jù)表
重復數(shù)據(jù)的風險??------------沒有數(shù)據(jù)重復的風險
寫入多張表------------寫入一張表
沒有統(tǒng)一的約束限制------------強制的約束限制
?
MySQL支持RANGE,LIST,HASH,KEY分區(qū)類型,其中以RANGE最為常用:
Range(范圍)–?這種模式允許將數(shù)據(jù)劃分不同范圍。例如可以將一個表通過年份劃分成若干個分區(qū)。
List(預定義列表)–?這種模式允許系統(tǒng)通過預定義的列表的值來對數(shù)據(jù)進行分割。
Hash(哈希)–?這中模式允許通過對表的一個或多個列的Hash?Key進行計算,最后通過這個Hash碼不同數(shù)值對應的數(shù)據(jù)區(qū)域進行分區(qū)。例如可以建立一個對表主鍵進行分區(qū)的表。
Key(鍵值)-?上面Hash模式的一種延伸,這里的Hash?Key是MySQL系統(tǒng)產(chǎn)生的。
Composite(復合模式)?–?以上模式的組合使用。比如,在初始化已經(jīng)進行了Range范圍分區(qū)的表上,我們可以對其中一個分區(qū)再進行hash哈希分區(qū)?!?br>?
二、分區(qū)能做什么
邏輯數(shù)據(jù)分割
提高單一的寫和讀應用速度
提高分區(qū)范圍讀查詢的速度
分割數(shù)據(jù)能夠有多個不同的物理文件路徑
高效的保存歷史數(shù)據(jù)
一個表上的約束檢查
不同的主從服務器分區(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
???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover
???? ?? ???? ??? AI ?????.

Clothoff.io
AI ? ???

Video Face Swap
??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

?? ??

??? ??

???++7.3.1
???? ?? ?? ?? ???

SublimeText3 ??? ??
??? ??, ???? ?? ????.

???? 13.0.1 ???
??? PHP ?? ?? ??

???? CS6
??? ? ?? ??

SublimeText3 Mac ??
? ??? ?? ?? ?????(SublimeText3)

??? ??









