接上面一篇,發現按照上面水平拆表把表按照年儲存到每個分割槽表中。由於業務推廣後按照年分表資料量還是很大。那麼我們考慮能不能再年表中在進行拆分。
下面介紹一下拆分步驟。
原表結構(只看分割槽情況):
從上面圖我們可以看出如wlkp_fp_data_2012 分割槽儲存在表空間wlkp_fp_data_2012裡面
那麼時間過半了我們統計半年資料發現wlkp_fp_data_2012 分割槽表資料也很多
我們考慮將wlkp_fp_data_2012 按照季度拆分
alter table wlkp_fp_kj split partition wlkp_fp_data_2012 at (to_date('2012-04-01','yyyy-mm-dd')) into (partition wlkp_fp_data_2012_1,partition wlkp_fp_data_2012);
alter table wlkp_fp_kj split partition wlkp_fp_data_2012 at (to_date('2012-07-01','yyyy-mm-dd')) into (partition wlkp_fp_data_2012_2,partition wlkp_fp_data_2012);
alter table wlkp_fp_kj split partition wlkp_fp_data_2012 at (to_date('2012-10-01','yyyy-mm-dd')) into (partition wlkp_fp_data_2012_3,partition wlkp_fp_data_2012);
alter table wlkp_fp_kj split partition wlkp_fp_data_2012 at (to_date('2012-12-31','yyyy-mm-dd')) into (partition wlkp_fp_data_2012_4,partition wlkp_fp_data_2012);
執行以上語句將wlkp_fp_data_2012 按照季度拆分四個子分割槽表中wlkp_fp_data_2012_1、wlkp_fp_data_2012_2、wlkp_fp_data_2012_3、wlkp_fp_data_2012_4
注:最後乙個分割槽時間為什麼是2012-12-31呢因為上面拆分wlkp_fp_data_2012整年的截止時間是2013-01-01
如果時間是2013-01-01會報錯
拆分後的分割槽如下:
和上面對比我可以看到我們將wlkp_fp_data_2012 按照季度拆分出子的分割槽表,注意以上還是在當前wlkp_fp_data_2012表空間下面拆分的
通過上面截圖我們看到該分割槽表只擴充套件到2023年,那麼2023年呢2023年呢我們怎麼辦呢?
我們同樣可以擴充套件。
1.新建2023年、2023年表空間
create tablespace "wlkp_fp_data_2014"
logging
datafile 'e:\oracle\product\10.2.0\oradata\wlkp\wlkp_fp_data_2014.ora'
size 5m reuse autoextend
on next 1024k maxsize 32767m extent management local
segment space management auto ;
commit;
create tablespace "wlkp_fp_data_2015"
logging
datafile 'e:\oracle\product\10.2.0\oradata\wlkp\wlkp_fp_data_2015.ora'
size 5m reuse autoextend
on next 1024k maxsize 32767m extent management local
segment space management auto ;
commit;
2.執行如下修改表結構語句
alter table wlkp_fp_kj split partition wlkp_fp_data_maxvalue at (to_date('2015-01-01','yyyy-mm-dd')) into (partition wlkp_fp_data_2014 tablespace wlkp_fp_data_2014,partition wlkp_fp_data_maxvalue);
alter table wlkp_fp_kj split partition wlkp_fp_data_maxvalue at (to_date('2016-01-01','yyyy-mm-dd')) into (partition wlkp_fp_data_2015 tablespace wlkp_fp_data_2015,partition wlkp_fp_data_maxvalue);
3.檢視新生成表結構
我們可以通過以上截圖看到新擴充套件的2014、2023年分割槽表建立成功同時2014、2015建立到另外的表空間了見綠色部分
通過以上步驟我們重新現有表再進行拆分。
注:通過以上步驟執行後表中的索引要重新建立否則以前老的索引要失效的
重新建立表wlkp_fp_kj索引
alter index pk_wlkp_fp_fphm unusable
alter index pk_wlkp_fp_fphm rebuild tablespace wlkptable;
alter index pk_wlkp_fp_nsrsbh_new unusable
alter index pk_wlkp_fp_nsrsbh_new rebuild tablespace wlkptable;
alter index pk_wlkp_fp_swjg_dm_new unusable
alter index pk_wlkp_fp_swjg_dm_new rebuild tablespace wlkptable;
alter index sys_c005998 unusable
alter index sys_c005998 rebuild tablespace wlkptable;
下面我們造一條記錄驗證是否插入到指定的表分割槽 中
輸入sql 查詢
select count(*) from wlkp_fp_kj partition(wlkp_fp_data_2012);
查詢到資料,說明我們分割槽表建立成功。
Mysql水平分表
mysql水平分表 mysql在資料量大的情況下,會遇到水平分表的情況。1 條件中含有分表的資訊 比如說要劃分10個表,那對10進行取模。其實也可以是任意雜湊函式,但是要注意注意衝突處理。2 根據時間拆表 當表的關係比較複雜時,無法根據某個維度進行分表。但是有明顯的時效性。想必大家都用微薄,某人發的...
mycat 水平分表
相對於垂直拆分的區別是 垂直拆分是把不同的表拆到不同的資料庫中,而水平拆分是把同乙個表拆到不同的資料庫中。水平拆分不是將表的資料做分類,而是按照某個欄位的某種規則來分散到多個庫之中,每個表中包含一部分資料。例如,分庫中的舉例,orders表水平分到order win和order linux兩個庫中。...
mycat水平分表
和垂直分庫不同,水平分表,是將那些io頻繁,且資料量大的表進行水平切分。基本的配置和垂直分庫一樣,我們需要改的就是我們的 schema.xml和rule.xml檔案配置 server.xml不用做任何修改 除此之外,我們還需要在兩個分片資料庫伺服器上建立分片用的資料庫10.0.4.181上建立 or...