在一个分区表中,一个逻辑意义上的大表会划分为较小的物理表。本文档中只讨论POLARDB for Oracle所支持的与Oracle兼容的表分区内容。

对表进行分区有下列好处:

  • 在某种情况下,能极大地提高查询性能,尤其是当大部分访问次数较多的表中的记录都在一个分区中或分布在很少的分区中时。 分区操作允许我们从索引的前面省略分区列, 减小索引尺寸并使其访问次数较多的部分符合内存。
  • 当要对一个分区表中大部分的内容进行查询或更新时, 性能也许会提高。因为服务器会执行分区的顺序扫描而不会使用索引和随机访问无序阅读整个表。
  • 如果您想在分区操作中批量加载(或卸载), 那么可以通过添加或删除分区来实现。ALTER TABLE的速度要比批量操作的速度快的多。它还能完全避免由批量DELETE引起的过分VACUUM。
  • 可将不常使用的数据移动到次高效的(或慢一点的)存储媒介中。

只有在表非常大的时候才值得对表进行分区。 分区带给表的好处取决于程序,最好的方法就是表的尺寸应该大于数据库服务器的物理内存。