樓主外號坑王,不是寫代碼坑,是到處填坑。。。。。
目前有個專案接手處理幾個問題,之前跟我說什么SQL查不出來,好吧,我想也沒什么,估計就是調整下SQL陳述句,再不行增加下索引,特么當我看到真實資料后,我特么傻逼了。。。
業務表,主要有2張,一個訂單主表,一個商品表,目前客戶需要很多查詢報表。。都是需要這兩張表的資料,可是目前訂單表內資料都已經到了3.5億了。。商品表至少是1:2的關系,那么至少在7億,收款表的估計也差不多7億。而且每天主表以40W的資料遞增,商品表100W資料遞增。。。

uj5u.com熱心網友回復:
目前查詢一天的資料,勉勉強強,要查個2-3天的資料就要先去抽根煙,玩一圈,要查一周的資料,呵呵了!uj5u.com熱心網友回復:
磁區啊,這么大表居然不磁區uj5u.com熱心網友回復:
有過時的訂單,大半年可能會看一下的,可以做資料歸檔了。。不然這么大資料量還不磁區,一股腦在一起,有沒有索引都沒有啥意義。uj5u.com熱心網友回復:
查一天的資料,或一周的資料,是怎么個查法?具體問題具體分析,可以描述一下
uj5u.com熱心網友回復:
按照時間磁區 比如說 一周一磁區例子如下 直接copy的別人成果。create table liusheng (orderid number(10),name varchar2(10),ls_date date);
insert into liusheng values (1,'ls1',to_date('1981-01-02','yyyy-mm-dd'));
insert into liusheng values (1,'ls2',to_date('1998-01-03','yyyy-mm-dd'));
insert into liusheng values (1,'ls3',to_date('1999-01-04','yyyy-mm-dd'));
insert into liusheng values (1,'ls4',to_date('2000-01-05','yyyy-mm-dd'));
insert into liusheng values (1,'ls5',to_date('2000-01-06','yyyy-mm-dd'));
insert into liusheng values (1,'ls6',to_date('2001-01-07','yyyy-mm-dd'));
insert into liusheng values (1,'ls7',to_date('2001-01-08','yyyy-mm-dd'));
insert into liusheng values (1,'ls8',to_date('2002-01-09','yyyy-mm-dd'));
insert into liusheng values (1,'ls9',to_date('2002-01-10','yyyy-mm-dd'));
insert into liusheng values (1,'ls10',to_date('2011-01-11','yyyy-mm-dd'));
創建range磁區表
create table liusheng_part
partition by range (ls_date)
(
partition liusheng_part_1999_1 values less than (to_date('1999-01-01','yyyy-mm-dd')) ,
partition liusheng_part_2000_1 values less than (to_date('2000-01-01','yyyy-mm-dd')) ,
partition liusheng_part_2001_1 values less than (to_date('2001-01-01','yyyy-mm-dd')) ,
partition liusheng_part_2002_1 values less than (to_date('2002-01-01','yyyy-mm-dd')) ,
partition liusheng_part_2003_1 values less than (to_date('2003-01-01','yyyy-mm-dd')) ,
partition other values less than (maxvalue)
)
as select * from liusheng;
查看磁區
select * from liusheng_part partition (liusheng_part_1999_1);
select * from liusheng_part partition (liusheng_part_2000_1);
select * from liusheng_part partition (liusheng_part_2001_1);
select * from liusheng_part partition (liusheng_part_2002_1);
select * from liusheng_part partition (liusheng_part_2003_1);
select * from liusheng_part partition (other);
uj5u.com熱心網友回復:
膜拜大神的小學生,不懂磁區uj5u.com熱心網友回復:
還可以按照時間節點做一次業務資料歸檔把某個日期前的資料切割出去
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/92158.html
標籤:開發
