2016-09-16 33 views
0

我的用户表没有多行......尚未。PostgreSQL查询计划是否依赖于表行数?

可能相同查询的查询计划随着表的增长而改变?

即看看我的应用程序将如何扩展,我应该在使用EXPLAIN之前将我的users表种入数十亿行吗?

+1

是的,计划**将随着行数的增加而改变。 –

+0

K.谢谢。嗯...接下来,我会找到种子我的用户表的好方法。 – ma11hew28

回答

2

估计的行数可能是影响选择查询计划的最重要因素。支持此

两个例子:

  • 如果你在表上的索引列使用WHERE条件,三件事情可能发生:

    1. 如果表是非常小或大部分行符合条件,则将使用顺序扫描来读取整个表并过滤出与条件匹配的行。

    2. 如果表格很大,且低百分比的行匹配条件,则会使用索引扫描。

    3. 如果表格很大,并且中等百分比的行匹配条件,则会使用位图索引扫描。

  • 如果您连接两个表格,表格上的估计行数将决定是否选择嵌套循环连接。