一、分區(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)產生的。
Composite(復合模式)?–?以上模式的組合使用。比如,在初始化已經進行了Range范圍分區(qū)的表上,我們可以對其中一個分區(qū)再進行hash哈希分區(qū)。
?
二、分區(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(表結構)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

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)
