我通过一组 FDW 表从键/值存储中公开数据。除了当我只需要一个小子集时,Postgres 经常被迫扫描整个表之外,一切都很好。
例如:
SELECT * FROM person WHERE person_id='WLW001';
除非我将 LIMIT 1 添加到末尾,否则它将搜索所有人员行。
在我的键/值存储中,我只需将“WLW001”作为键的一部分传递即可直接找到正确的记录。
换句话说,我需要找到 WHERE 子句条件来优化我对键/值存储的查询。我浏览了许多示例 FDW 和文档,找不到任何描述使用 RelOptInfo 或 scan_clauses 列表或帮助函数来获取此信息的内容。
此外,如果 SELECT 语句包含参数标记,我似乎需要用该值替换标记。我在哪里找到价值?