分区索引的应用和实践 - 阿里云RDS PostgreSQL最佳实践
标签
PostgreSQL , partial index , partition index
背景
当表很大时,大家可能会想到分区表的概念,例如用户表,按用户ID哈希或者范围分区,拆成很多表。
又比如行为数据表,可以按时间分区,拆成很多表。
拆表的好处:
1、可以将表放到不同的表空间,表空间和块设备挂钩,例如历史数据访问量低,数据量大,可以放到机械盘所在的表空间。而活跃数据则可以放到SSD对应的表空间。
2、拆表后,方便维护,例如删除历史数据,直接DROP TABLE就可以了,不会产生REDO。
索引实际上也有分区的概念,例如按USER ID HASH分区,按时间分区等。
分区索引的好处与分区表的好处类似。同时还有其他好处:
1、不需要被检索的部分数据,可以不对它建立索引。
例如一张用户表,我们只检索已激活的用户,对于未激活的用户,我们不对它进行检索