我正在尝试将我的表分区如下
CREATE TABLE ABC(
id VARCHAR2(100) primary key,
datecreated DATE)
PARTITION BY RANGE (datecreated) INTERVAL (NUMTODSINTERVAL(1,'DAY'))
SUBPARTITION BY HASH (ID) SUBPARTITIONS 4
(PARTITION lessthan2018 VALUES LESS THAN (TIMESTAMP' 2018-01-01 00:00:00') );
如果我使用WHERE子句和#34; ID"性能会提高吗?如果我按日期分区,性能是否相同。它会执行相同的操作,因为ID已经是主键吗?
答案 0 :(得分:2)
如果$this->get('doctrine.orm.entity_manager');
是主键,那么您将在该列上拥有唯一的全局索引,并且分区不会有任何区别,因为索引已经将您带到指定行的物理地址。
此外,删除,截断或交换分区将使索引无效,除非您指定id
子句。
如果update global indexes
不是PK,而是像产品类型或区域代码那样非唯一的东西,那么只查询没有任何日期的那个列就需要检查每个分区。