PostgreSQL查询计划是否依赖于表行计数?

时间:2016-09-16 22:55:26

标签: performance postgresql explain sql-execution-plan

我的用户表没有很多行......

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

即,要了解我的应用程序将如何扩展,我应该在使用users之前为EXPLAIN表种植数百万行吗?

1 个答案:

答案 0 :(得分:2)

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

支持这一点的两个例子:

  • 如果在表的索引列上使用WHERE条件,则可能发生以下三种情况:

    1. 如果表格非常小​​或行的高百分比符合条件,则将使用顺序扫描来读取整个表格并过滤掉与条件匹配的行。

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

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

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