我什么时候应该拆分我的表以加快查找速度



我有一个Postgres表,其中包含500k行,仅由多个用户读取(很多(。我想知道将数据库一分为二,比如说行的"出生日期",是否会更有效。

我有一半的表格将被查询更多(出生日期>40(。因此,按出生日期拆分它将允许我直接检查到一个较小的子集(通过简单地检查我的元素是否为>40(。这种方法有什么改进吗?

索引可以解决您的问题。通过存储表的不同部分来拆分表只会使事情复杂化。

SiWM是对的。不要拆分你的桌子,特别是考虑到按照今天的标准,500k并不是一个很大的数字。作为 SiWM 建议的补充,我建议您在查询表时检查 WHERE 子句中的哪些列,并确保这些列已编制索引。

您还可以使用所使用的主索引(使用 cron 作业(对表进行聚类,尤其是在需要从单个查询返回多行时。

https://www.postgresql.org/docs/9.1/sql-cluster.html

初始设置:

    CLUSTER [VERBOSE] table_name [ USING index_name ]

重新群集:

    CLUSTER table_name 

最新更新