选择执行计划之后,这个执行计划就可以开始执行了。PostgreSQL 数据库的执行器是一个流水线式的火山模型,“流水线”的意思是说它每次只处理一条元组,“火山模型”的意思是它是一个“拉取”式的模型,也就是对执行计划进行后序遍历。为了方便说明,我们来看一个例子。
假设有 2 个表,他们的数据分别如下:
TEST_A 表:
A | B | C | D |
---|---|---|---|
1 | 1 | 1 | 1 |
2 | 2 | 2 | 2 |
TEST_B 表:
A | B | C | D |
---|---|---|---|
2 | 2 | 2 | 2 |
3 | 3 | 3 | 3 |
如果要对 TEST_A 进行扫描,它的执行计划应该是这样的:
postgres=# EXPLAIN VERBOSE SELECT * FROM TEST_A WHERE A = 1;