下面就筆者工作中遇到的時(shí)間問(wèn)題,模擬一下情況對(duì)大家進(jìn)行介紹.
工作中仍然是海量數(shù)據(jù)出現(xiàn)的情況.每年大概會(huì)有幾億條記錄.而且數(shù)據(jù)的時(shí)效性比較強(qiáng).但歷史數(shù)據(jù)仍然要求保留.這個(gè)時(shí)候經(jīng)過(guò)分析和研究,最終決定通過(guò)時(shí)間字段進(jìn)行分區(qū).下面是分區(qū)表的創(chuàng)建代碼.讀者門在插入了不同年份時(shí)間段以后,可以時(shí)間字段為條件進(jìn)行查詢,可以看到數(shù)據(jù)庫(kù)掃描過(guò)的區(qū)段.
- CREATE TABLE part_data
- (c1 int default NULL,
- c2 varchar(30) default NULL,
- c3 date default NULL)
- partition by range (to_days(c3))
- (PARTITION p0 VALUES LESS THAN (to_days('1995-01-01')),
- PARTITION p1 VALUES LESS THAN (to_days('1996-01-01')) ,
- PARTITION p2 VALUES LESS THAN (to_days('1997-01-01')) ,
- PARTITION p3 VALUES LESS THAN (to_days('1998-01-01')) ,
- PARTITION p4 VALUES LESS THAN (to_days('1999-01-01')) ,
- PARTITION p5 VALUES LESS THAN (to_days('2000-01-01')) ,
- PARTITION p6 VALUES LESS THAN (to_days('2001-01-01')) ,
- PARTITION p7 VALUES LESS THAN (to_days('2002-01-01')) ,
- PARTITION p8 VALUES LESS THAN (to_days('2003-01-01')) ,
- PARTITION p9 VALUES LESS THAN (to_days('2004-01-01')) ,
- PARTITION p10 VALUES LESS THAN (to_days('2010-01-01')),
- PARTITION p11 VALUES LESS THAN MAXVALUE );
CREATE TABLE part_data(c1 int default NULL,c2 varchar(30) default NULL,c3 date default NULL)partition by range (to_days(c3))(PARTITION p0 VALUES LESS THAN (to_days('1995-01-01')),PARTITION p1 VALUES LESS THAN (to_days('1996-01-01')) ,PARTITION p2 VALUES LESS THAN (to_days('1997-01-01')) ,PARTITION p3 VALUES LESS THAN (to_days('1998-01-01')) ,PARTITION p4 VALUES LESS THAN (to_days('1999-01-01')) ,PARTITION p5 VALUES LESS THAN (to_days('2000-01-01')) ,PARTITION p6 VALUES LESS THAN (to_days('2001-01-01')) ,PARTITION p7 VALUES LESS THAN (to_days('2002-01-01')) ,PARTITION p8 VALUES LESS THAN (to_days('2003-01-01')) ,PARTITION p9 VALUES LESS THAN (to_days('2004-01-01')) ,PARTITION p10 VALUES LESS THAN (to_days('2010-01-01')),PARTITION p11 VALUES LESS THAN MAXVALUE );
分區(qū)查詢,可以查看掃描過(guò)的區(qū)段.當(dāng)然要加上where子句,以c3時(shí)間為條件進(jìn)行檢索.若不使用時(shí)間字段,分區(qū)將失去作用.
- explain partitions select * from part_data\G