一、分區(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ù)進(jìn)行分割。
Hash(哈希)–?這中模式允許通過對表的一個或多個列的Hash?Key進(jìn)行計算,最后通過這個Hash碼不同數(shù)值對應(yīng)的數(shù)據(jù)區(qū)域進(jìn)行分區(qū)。例如可以建立一個對表主鍵進(jìn)行分區(qū)的表。
Key(鍵值)-?上面Hash模式的一種延伸,這里的Hash?Key是MySQL系統(tǒng)產(chǎn)生的。
Composite(復(fù)合模式)?–?以上模式的組合使用。比如,在初始化已經(jīng)進(jìn)行了Range范圍分區(qū)的表上,我們可以對其中一個分區(qū)再進(jìn)行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進(jìn)行子分區(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

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)
