Mysql數(shù)據(jù)庫優(yōu)化-分區(qū)

四種分區(qū)算法 hash? key? ? list? range

依據(jù)業(yè)務邏輯分區(qū):range,list

平均分配:hash,key

取余的算法(hash,key),增加分區(qū),減少分區(qū),數(shù)據(jù)不會收到影響,僅僅是重新分配數(shù)據(jù)到不同的分區(qū).

條件的分區(qū),增加沒關(guān)系,刪除分區(qū),導致分區(qū)內(nèi)的數(shù)據(jù)一同消失,類似刪除表!

Demo

創(chuàng)建表時,需要指定當前表的分區(qū),及其對于的分區(qū)算法:

最常用的分區(qū)邏輯,使用主鍵將數(shù)據(jù)平均分配到10個區(qū)中.hash算法就可以做到!

Drop table if exists‘zhangc’;

Create table‘zhangc’

(

Id ?int ?auto_increment,

Name varchar(32),

Birthday date,

Intro text,

Primary key(id)

)charset=utf8

利用id字段,對10取余(hash是取余算法)

Partition ?by ?hash(id)Partitions 10;

插入或其他的操作,常規(guī)操作即可,不需要有語法的改變,記錄就被依據(jù)算法存儲在某個區(qū)內(nèi)

hash,使用給定的一個整數(shù),對分區(qū)數(shù)量取余分區(qū),hash(分區(qū)表達式),應該整數(shù).

key,使用任意字段,對分區(qū)數(shù)據(jù)量取余分區(qū),不要求是整數(shù)字段。MySQL會依據(jù)給定的字段的值,自己計算整數(shù),去取余!

☆注意:分區(qū)字段要加入到primary key中.

range, 利用給定的范圍條件,進行分區(qū)

list, 利用給定的列表值,進行條件分區(qū)

管理分區(qū)

取余(hash,key),增減分區(qū)數(shù)量即可.

增加分區(qū)數(shù)量

add partition partitions N

增加N個分區(qū).

Alter ?table‘zhangc’add partition partitions 5;

減少數(shù)量(合并分區(qū))

coalesce partition N

減少N個分區(qū).

Alter ?table‘zhangc’coalescepartition 5;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容