Postgres 里的基因查询优化(GEQO

GEQO 模块是试图解决类似漫游推销员问题(TSP)的查询优化问题的.可能的查询规划被当作整数字串进行编码.每个字串代表查询里面一个关系到下一个关系的 join 的顺序.例如,下面的查询树
       /\
      /\ 2
     /\ 3
    4  1
是用整数字串 '4-1-3-2' 编码的,这就是说,首先联接关系 '4' 和 '1',然后 '3',然后是 '2',这里的 1,2,3,4都是 Postgres 里的关系标识(relids)。

GEQO 模块的一部分是采用的 D. Whitley 的 Genitor 算法.

在 Postgres 里的 GEQO 实现的一些特性是:

与 Postgres 的查询优化器实现相比较,GEQO 模块对Postgres DBMS 有下面的贡献: