分区的目的
当单表的数据量较大,需要进行定期的数据归档删除时,或者提高查询性能,都可以采用分区
分区的种类
- range分区
- list分区
- hash分区
- key分区
range分区
区间分区,常用与跟日期相关的,例如:
create table table_demo (
id int,
create_date datetime
)
partition by range (to_days(create_date)) (
partition p1 values less than (to_days('20200401')),
partition p2 values less than (to_days('20200402'))
)
注意:
- range接受整型,所以需要用to_days转换;
- 如何类型是timestamp,则用unix_timestamp转换;
list分区
和range分区的区别在于,range使用区间,list使用枚举列表,例如:
create table table_demo (
id int,
register_channel int
)
partition by list (register_channel) (
partition p1 values in (1,2,3),
partition p2 values in (4,5,6)
)
<