我已经尝试查询和索引两天了,以找到最快的解决方案,直到今天我才发现,多亏了这个答案,使用;CCD_ 1";命令EXPLAIN
,然后在添加或删除索引之后查询完全改变。
我的工作包括:
- 使用Potgresql13
- 使用在数据类型和数量方面尽可能与生产数据库相似的数据库
- 编写一个将由后端语言生成和使用的查询
- 尝试各种索引(同时我也在学习Postgresql(
- 添加一个索引并尝试EXPLAIN
- 尽管有新的索引,我仍然看到
Sequential Scan
- 因此,由于没有使用索引,我开始更好地理解并找到另一个解决方案
- 直到今天我才意识到使用";CCD_ 4";更新Postgresql查询计划
问题
-
这是我经常要做的事情吗?
-
我是否可以自动设置它,以便在对索引或正在开发的结构进行每次修改后自动进行分析?
-
此分析是否在生产中自动执行?
索引没有统计信息,它们依赖于底层表中同一列的统计信息。例外是函数/表达式索引,它们确实有自己的统计信息,因为它们发明了不在基础表中的新列。
除非您创建的索引是一个表达式索引(或者您的统计数据一开始就已经过时(,否则没有理由在创建索引后分析表。
在创建表达式索引后,没有自动进行分析的机制。即使有,您也可能希望手动完成,因为您希望在进行测试之前确保它已经完成。