方案思路:有一張暴增的數據表(10億級別),以后需求需要提高單條查詢性能, 這個表有個唯一ID,
假設是UUID,采用區分首字母的方法,不同字母的數據入到不同的物理文件中。?
第一步:
查找數據庫服務器本機 物理文件存放位置 例如 ,D:\oracle\product\10.2.0\oradata\database ?
在此目錄下新建文件夾 ?partition ? 。用于存放分區表 下不同表空間的dbf(物理文件)。
第二步:?
建立分區表需要的表空間 。
CREATE ?TABLESPACE tablespace_a ?LOGGING ?DATAFILE ?'D:\oracle\product\10.2.0\oradata\database\partition\tablespace_a_0.DBF ' ? SIZE 10M ?AUTOEXTEND ?ON ? NEXT ?10M MAXSIZE 100M ?EXTENT MANAGEMENT LOCAL;
?
CREATE ?TABLESPACE tablespace_b ?LOGGING ?DATAFILE ?'D:\oracle\product\10.2.0\oradata\database\partition\tablespace_b_0.DBF ' ? SIZE 10M ?AUTOEXTEND ?ON ? NEXT ?10M MAXSIZE 100M ?EXTENT MANAGEMENT LOCAL;
第三步:
建立分區表
---create by cphmvp 20131220 create table tab_page_relation_partition ( UNIQUE_ID CHAR(32) not null, DATA_ID CHAR(32), NICK_ID NUMBER, URL VARCHAR2(512), UPDATE_TIME DATE, INSERT_TIME DATE default sysdate not null, LAST_CRAWLER_TIME DATE, MARK NUMBER default 0 not null ) --根據unique_id區分 數據,邏輯上獨立,物理上分開 partition by range(UNIQUE_ID) ( partition part_a values less than('b') tablespace tablespace_a, partition part_b values less than(maxvalue) tablespace tablespace_b );
?四:
插入測試
INSERT INTO tab_page_relation_partition (unique_id) VALUES('accccccccccc');
INSERT INTO tab_page_relation_partition (unique_id) VALUES('bccccccccccc');
INSERT INTO tab_page_relation_partition (unique_id) VALUES('cccccccccccc');
commit;
查詢:
SELECT * FROM tab_page_relation_partition ;
select*from tab_page_relation_partition PARTITION(PART_A);
select*from tab_page_relation_partition PARTITION(PART_B);
五:
清理工作?
刪除表
DROP TABLE tab_page_relation_partition;
刪除物理文件含表空間
DROP TABLESPACE TABLESPACE_A INCLUDING CONTENTS AND DATAFILES;
DROP TABLESPACE TABLESPACE_B INCLUDING CONTENTS AND DATAFILES;
?
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
