Postgresql,在每次更新索引或结构后手动使用analyze$table_name来更新查询计划器?真的吗



我已经尝试查询和索引两天了,以找到最快的解决方案,直到今天我才发现,多亏了这个答案,使用;CCD_ 1";命令EXPLAIN,然后在添加或删除索引之后查询完全改变。

我的工作包括:

  1. 使用Potgresql13
  2. 使用在数据类型和数量方面尽可能与生产数据库相似的数据库
  3. 编写一个将由后端语言生成和使用的查询
  4. 尝试各种索引(同时我也在学习Postgresql(
  5. 添加一个索引并尝试EXPLAIN
  6. 尽管有新的索引,我仍然看到Sequential Scan
  7. 因此,由于没有使用索引,我开始更好地理解并找到另一个解决方案
  8. 直到今天我才意识到使用";CCD_ 4";更新Postgresql查询计划

问题

  1. 这是我经常要做的事情吗?

  2. 我是否可以自动设置它,以便在对索引或正在开发的结构进行每次修改后自动进行分析?

  3. 此分析是否在生产中自动执行?

索引没有统计信息,它们依赖于底层表中同一列的统计信息。例外是函数/表达式索引,它们确实有自己的统计信息,因为它们发明了不在基础表中的新列。

除非您创建的索引是一个表达式索引(或者您的统计数据一开始就已经过时(,否则没有理由在创建索引后分析表。

在创建表达式索引后,没有自动进行分析的机制。即使有,您也可能希望手动完成,因为您希望在进行测试之前确保它已经完成。

相关内容

最新更新