MySQL分區(qū)表
mysql分區(qū)表是一個獨(dú)立的邏輯表,但是底層由多個物理字表組成。
對分區(qū)的請求,都會通過句柄對象轉(zhuǎn)化成對存儲引擎接口的調(diào)用。所以分區(qū)對于
對于sql層來說是一個完全封裝底層實(shí)現(xiàn)的黑盒子,對應(yīng)用是透明的。
Mysql實(shí)現(xiàn)分區(qū)表的方式--對底層表的封裝--意味著索引也是按照分區(qū)的字表定義的,而沒有全局索引。
適合場景:
表中只有最后部分?jǐn)?shù)據(jù)是熱點(diǎn)數(shù)據(jù),其他均為臨時數(shù)據(jù)。
分區(qū)表中數(shù)據(jù)更容易維護(hù),可以對獨(dú)立的分區(qū)進(jìn)行優(yōu)化,檢查、修復(fù)等操作
分區(qū)表數(shù)據(jù)可以分布在不同物理設(shè)備上,從而高效地利用多個硬件設(shè)備
可以備份和恢復(fù)獨(dú)立的分區(qū),這在非常大的數(shù)據(jù)集的場景下效果非常好。
分區(qū)限制:
一個分區(qū)表只能有1024個分區(qū)
如果分區(qū)字段中有主鍵或者唯一索引的列,那么所有主鍵列和唯一索引列都必須包含進(jìn)來。
利用分區(qū)表來避免某些特殊的瓶頸,例如Innodb的單個索引的互斥訪問ext3文件系統(tǒng)的inode鎖競爭等。
分區(qū)表無法使用外鍵約束。
分區(qū)表的原理
從存儲引擎的角度來看,底層表和一個普通的表沒有任何不同,存儲引擎也無需知道這是一個普通表還是一個分區(qū)表的一部分。
select查詢
分區(qū)表的類型
mysql支持多種分區(qū)表。分區(qū)表達(dá)式可以是列,也可以是包含列的表達(dá)式。例如,下表就可以將每一年的銷售額存放在不同的分區(qū)里。
create table sales(
order_date datetime not null,
--Other columns
)engine=InnoDB partition by range(Year(order_date))(
partition p_2010 values less then (2010),
partition p_2011 values less then(2011),
partition p_catchall values less then maxvalue);
mysql還支持鍵值,哈希和列表分區(qū)。
系統(tǒng)通過子分區(qū)可降低索引的互斥訪問的競爭。最近一年的分區(qū)的數(shù)據(jù)會被非常頻繁地訪問,這會導(dǎo)致大量的互斥鎖的競爭。使用哈希子分區(qū)可以
將數(shù)據(jù)切成多個小片,大大降低互斥量的競爭問題。
本文題目:mysql分區(qū)表筆記
文章源于:http://chinadenli.net/article46/jiiheg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、網(wǎng)站營銷、商城網(wǎng)站、手機(jī)網(wǎng)站建設(shè)、網(wǎng)站策劃、
廣告
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源:
創(chuàng)新互聯(lián)