postgresql性能问题

时间:2015-07-15 17:04:44

标签: sql performance postgresql database-performance

我的问题是关于postgresql查找的性能。 我有一个桌子会员,至少有2 000 000名会员和更多会员。 该系统有一些特殊成员(约10 000)。 我有单身成员的逻辑做事,要求我每次都要查询2-3个这些特殊成员。

问题是:在外化时可能会遇到性能提升 10 000名成员进入自己的桌子,即便如此,他们完全平等?因为这些运行的查找速度更快,因为行数更少?

编辑: 查询尽可能简单。只需按主键查询并加入外键即可。

EDIT2: 简化问题。查询表中的主键与30 000 000+行和表10 000行之间是否存在显着的速度差异?还是关于适当的索引呢?

提前谢谢

2 个答案:

答案 0 :(得分:1)

  1. 对于您的所有查询,请运行EXPLAIN your-query-here并检查是否使用了索引。

  2. 根据该表的更新频率,您可以在Postgres中创建基本上用作过滤器的VIEW。

答案 1 :(得分:1)

在此阶段拆分表格之前,我不会费心,直到您的测量结果清楚地表明VIP成员的查询是瓶颈。

如果以后遇到此问题,您可以选择一些方法来提高性能,而无需更改应用程序中的代码更改。

其中一个是 - VIP会员的单独索引。 您可以创建仅包含VIP成员数据的partial index。这将减少大约log(30000000)/ log(10000)〜= 2次的查找次数。

另一种选择是使用表inheritance,以便您的应用程序仍然认为它适用于一个表,但实际上它被分成两个物理表。