分区的好处:
1.可访问性增强,一个坏分区不会影响其他分区
2.DDL可针对单个分区
3.OLTP系统中可降低对共享资源的集中访问,DML分散在多个段中。
4.在数据仓库中,查询性能增强。
一个表或者索引的分区必须共享逻辑属性,包括同样的列,数据约束,类型,但是可以有不同的物理属性,比如表空间。
Partition key是一组列,用来唯一确定每一行应该放进哪个分区。
分区策略:range, list, hash partitioning
Single-level/ composite partitioning: 用一种或多种分区策略进行分区。
Range partitioning: 根据分区键的值范围。是最常用的分区策略,通常用在日期类型。
List partitioning: 根据一组离散的值来划分分区。
Hash partitioning:用一个哈希函数进行分区,通过指定分区的数目,可以很平均的把数据分布在不同分区中。
一个堆组织表的所有或部分分区,还可以以压缩格式存储,可以节省空间和提高查询速度,特别是在数据仓库和OLTP环境中,插入和更新较少。
Partitioned index
Local partitioned index
Local prefixed index
Local nonprefixed index
Global partitioned index
Nonpartitioned index
Local partitioned index采用和它的表同样的分区方式,每一个表分区对应一个索引分区,并且是自动维护的,一个索引分区的索引指向它所对应的表分区中的纪录。在数据仓库环境中很常用。不能对本地索引加分区,除非表也加了一个分区。
Global partitioned index: 是一个b树索引,分区独立于其表,可以指向任何表分区,而不像局部分区索引,只能指向其对应表分区。
适用于OLTP应用。
你也可以对索引组织表进行分区。但有一些限制:
1.分区列必须是主键列的子集。
2.二级索引可以被分区。
4.Overflow 数据段通常和表分区一样被分区。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/11903161/viewspace-675688/ ,如需转载,请注明出处,否则将追究法律责任。