大數據(一)--水平分表分區

現階段即便是一些創業型小公司也會遇到某些表數據過大的情況,而造成查詢緩慢,此時我們可以對單表採用水平分區分表。

1.分區分表是在物理上對數據表所對應的文件進行拆分,對應的表名是不變的,所以不會影響到之前業務邏輯的sql。

2.分區的文件放在不同盤符可以充分利用cpu來提高查詢效率。

3.對於表數據比較小的不應進行水平分表(一般單表在700萬條以上考慮分表),因爲分表後的查詢等業務會創建對應的對象,也會造成一定的開銷。

下面是水平分區分表步驟,本文采用可視化操作,如喜歡代碼操作的請參照百度:

a:點數據庫右鍵,屬性,建立文件組,假設要將一張帶時間字段表按月分表,假設是今年的12個月,就建立12個分組

b:同上,建立文件,每個分組放一個文件,建立12個文件,完成後可以在對應的物理位置找到該12個文件

c.分表

.

 

 

 

創建好後以下位置可以看到

也可以用代碼方式實現如下:

--創建分區函數
create partition function datetest(datetime) as range right for values
('2019-01-01','2019-02-01','2019-03-01','2019-04-01','2019-05-01','2019-06-01',
'2019-07-01','2019-08-01','2019-09-01','2019-10-01','2019-11-01','2019-12-01')

 

--創建分區方案
CREATE PARTITION SCHEME TestScheme AS PARTITION [datetest]
TO([PRIMARY], [group01], [group02], [group03], [group04], [group05],
[group06], [group07], [group08], [group09], [group10], [group11], [group12])

以上弄好後可以生成腳本,也可立即執行,分區成功。

下面測試分區查詢sql:

select *, $partition.分區名(列名) partitionNum from 表名,也可插入一些數據嘗試。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章